programador

iván albizu

Main Blog

Blog

AngularJS consumiendo de servicio Django

Angular cliente - Django Servicio

En esta ocasión publico entrada sobre Angular como cliente y Django como servicio REST.

Contendrá dos modelos, libro y autores. Los campos de libro son título, editorial, género y su autor. Los campos de autor serán nombre y apellidos.

Las peticiones son enviadas desde angular usando $resource hacía Django rest framework.

Cliente – Services

En la “Factory” BookServices (similar para autores) se definen los métodos GET, POST, PUT y DELETE para manipular un registro de tipo libro.

En la “Factory” BooksServices (similar para autores) se define el método GET que devolverá todos los registros de tipo libro.

Cliente – Controllers

Existen tres “controllers”: BookCtrl, CurrentBookCtrl y NewBookCtrl.

  • Con BookCtrl se obtienen todos los registros, haciendo la llamada al método get de BooksServices.
  • Con CurrentBookCtrl se permite obtener un registro, borrarlo y editarlo llamando a los métodos get, delete y update respectivamente de BookServices.
  • Con NewBookCtrl se permite crear un nuevo registro llamando al método  save de BookServices.

Servidor – Django Rest Framework

Cómo he comentado, el servidor será Django Rest Framework. En este caso no entro en detalle, sólo comentar que los archivos creados y/o editados son: settings.py, urls.py, models.py, viewsets.py, serializers.py

  • En settings.py se añaden las dependencias y configuraciones de “rest_framework” y “corsheaders” (este último para simplificar y evitar problemas con CORS).
  • En urls.py como su nombre indica se definen el tema de rutas.
  • En models.py se crean los modelos y sus campos.
  • En serializers.py se serializan los modelos.
  • Los viewsets.py son necesarios para hacer la conexión de los modelos serializados con el ruteo de urls en urls.py
Hasta aquí la configuración de Django Rest Framework.

Sobre el cliente he obviado cosas para no hacerlo muy extenso. En mi repositorio de GitHub se puede encontrar todo el código de AngularJS.

Esta entrada tiene 0 comentarios

Deja un comentario





Time limit is exhausted. Please reload CAPTCHA.