start how framework example create consumir auth django api rest

how - Django y Restful API



django rest framework post (8)

He estado luchando con elegir una metodología para crear una API RESTful con Django. Ninguno de los enfoques que he probado parece ser la bala "plateada". WAPI de http://fi.am es probablemente el más cercano a lo que me gustaría lograr, sin embargo, no estoy seguro de si es aceptable en una API RESTful verdadera tener parámetros que sean identificadores de recursos en la cadena de consulta en lugar de en un "limpia" el formato de URL. ¿Alguna sugerencia para modificar WAPIs RestBinding.PATTERN para "limpiar" las URL? Otra opción que he explorado es Django-Rest-Interface. Sin embargo, este marco parece violar una de las piezas más importantes que necesito, y es incluir la URL completa de los recursos para referencias a otros recursos (ver http://jacobian.org/writing/rest-worst-practices/ Uso indebido de Campo de golf). La última opción es usar django-multiresponse y básicamente hacerlo a lo largo.

Por favor, ofréceme tu mejor consejo, especialmente a las personas que han tratado con esta decisión.


Creo que el recientemente lanzado django-piston es ahora la mejor solución para crear una interfaz REST adecuada en Django. django-piston

Nota : django-piston parece que ya no se mantiene (ver comentarios a continuación)



Le sugiero que busque en Django Rest Framework (DRF), juegue con esto y vea si se ajusta a sus necesidades. La razón por la que recomiendo DRF es porque hace que las vistas API sean realmente simples con el uso de las clases GenericAPIView, Mixin Classes y Mixed in Generic views. Puede hacer uso de patrones de diseño probados para hacer sus puntos finales API y mantener su base de códigos clara y concisa. También SECO cuando escribe su código que siempre es excelente. Sus vistas de API son literalmente de 2-3 líneas de largo.

Puede consultar este tutorial en http://programmathics.com/programming/python/django-rest-framework-setup/ que comienza con la configuración de su entorno para pasar por las diferentes formas de hacer que su API RESTful use el marco de trabajo django.

Descargo de responsabilidad: soy el creador de ese sitio web.



Para Django, además de tastypie y piston, django-rest-framework es prometedor y vale la pena mencionarlo. Ya he migrado uno de mis proyectos sin problemas.

El framework Django REST es un marco REST liviano para Django, que tiene como objetivo facilitar la creación de API RESTful Web API bien conectadas y autodescriptivas.

Ejemplo rápido:

from django.conf.urls.defaults import patterns, url from djangorestframework.resources import ModelResource from djangorestframework.views import ListOrCreateModelView, InstanceModelView from myapp.models import MyModel class MyResource(ModelResource): model = MyModel urlpatterns = patterns('''', url(r''^$'', ListOrCreateModelView.as_view(resource=MyResource)), url(r''^(?P<pk>[^/]+)/$'', InstanceModelView.as_view(resource=MyResource)), )

Tome el ejemplo del sitio oficial, todos los códigos anteriores proporcionan api, documentación explicada por sí mismo (como el servicio web basado en jabón) e incluso sandboxing para probar. Muy conveniente.

Enlaces: http://django-rest-framework.org/


Puedes echar un vistazo a django-dynamicresponse , que es un marco liviano para agregar REST API con JSON a tus aplicaciones de Django.

Requiere cambios mínimos para agregar soporte API a las aplicaciones existentes de Django, y hace que sea sencillo incorporar API desde el principio en nuevos proyectos.

Básicamente, incluye soporte de middleware para analizar JSON en request.POST, además de serializar el contexto devuelto a JSON o renderizar una plantilla / redirigir condicionalmente según el tipo de solicitud.

Este enfoque difiere de otros marcos (como django-piston) en que no es necesario crear manejadores separados para las solicitudes API. También puede reutilizar su lógica de visualización existente y seguir utilizando la validación de formularios, etc., como las vistas normales.



django-tastypie es una buena manera de hacerlo, su lema: "Crear deliciosas API para aplicaciones de Django desde 2010" es bastante reconfortante;)