Django Rest Framework

Django Rest Framework (DRF), es una biblioteca de código abierto, bien madurada de Python y Django destinada a ayudar a los desarrolladores de aplicaciones a desarrollar API web sofisticadas.

La arquitectura modular, flexible y personalizable de DRF  que hace posible el desarrollo de puntos finales API simples y llave en mano y construcciones REST complicadas. El objetivo de DRF es dividir un modelo, generalizar la representación de cable, como JSON o XML, y personalizar un conjunto de vistas basadas en clase para satisfacer el punto final específico de la API mediante un serializador que describe la asignación entre vistas y puntos finales de la API.

Características principales

API de navegación web

Esta característica mejora la API REST desarrollada con DRF. Tiene una interfaz rica y la API de navegación web también admite varios tipos de medios. La API navegable significa que las API que construimos se autodescribirán y los puntos finales de API que creamos como parte de los servicios REST y devolverán representaciones JSON o HTML. El hecho interesante acerca de la API de navegación web es que podemos interactuar con ella completamente a través del navegador, y cualquier punto final con el que interactuemos usando un cliente programático también será capaz de responder con una vista amigable del navegador en la API de navegación web .

Autenticación

Una de las principales características atractivas de Django es la autenticación; admite categorías amplias de esquemas de autenticación, desde la autenticación básica, la autenticación de token, la autenticación de sesión, la autenticación de usuarios remotos, hasta la autenticación de OAuth. También admite esquemas de autenticación personalizados si deseamos implementar uno. DRF ejecuta el esquema de autenticación al inicio de la vista, es decir, antes de que se permita que cualquier otro código continúe. DRF determina los privilegios de la solicitud entrante a partir de las políticas de permisos y limitación y luego decide si la solicitud entrante se puede permitir o no con las credenciales coincidentes.

Serialización y deserialización.

La serialización es el proceso de conversión de datos complejos, como querysets e instancias de modelos, en tipos de datos nativos de Python. La conversión facilita la representación de tipos de datos nativos, como JSON o XML. DRF soporta la serialización a través de clases de serializadores. Los serializadores de DRF son similares a las clases Form y ModelForm de Django. Proporciona una clase de serializador, que ayuda a controlar la salida de las respuestas. Las clases DRF ModelSerializer proporcionan un mecanismo simple con el que podemos crear serializadores que se ocupan de instancias y consultas de modelos. Los serializadores también realizan la deserialización, es decir, los serializadores permiten que los datos analizados se vuelvan a convertir en tipos complejos. Además, la deserialización ocurre solo después de validar los datos entrantes.

Otras características destacables

Aquí hay algunas otras características notables del DRF:

  • Enrutadores : el DRF admite el enrutamiento automático de URL a Django y proporciona una forma coherente y directa de conectar la lógica de la vista a un conjunto de URL
  • Vistas basadas en clase : un patrón dominante que permite la reutilización de funcionalidades comunes
  • API de hipervínculos : el DRF admite varios estilos (mediante el uso de claves primarias, hipervínculos entre entidades, etc.) para representar la relación entre las entidades.
  • Vistas genéricas : nos permite crear vistas API que se asignan a los modelos de base de datos

DRF tiene muchas otras características como el almacenamiento en caché, la regulación, las pruebas, etc.

Éstos son algunos de los beneficios del DRF:

  • API de navegación web
  • Políticas de autenticación
  • Potente serialización
  • Amplia documentación y excelente apoyo comunitario.
  • Sencillo pero poderoso
  • Cobertura de prueba de código fuente
  • Seguro y escalable
  • Personalizable