2011-12-08 17 views
32

Estamos buscando una solución RESTful API general para nuestro proyecto Django. Primero usaríamos la API para llamadas Ajax en el sitio web y luego para aplicaciones móviles, aplicaciones externas y cosas por el estilo.Django RESTful API - django-piston vs. django-tastypie

Encontré dos módulos que parecen ser ampliamente utilizados. django-piston y django-tastypie

Por lo que he leído, pistón parece ser más viejo y por lo tanto más maduro, pero tal vez un poco desactualizado ?! Mientras que tastypie es relativamente nuevo y está bien documentado.

¿Cuál sería la mejor opción? django-piston o django-tastypie? Importante para nosotros (ordenados por prioridad): Mantenimiento continuo de la fuente, documentación, estabilidad, facilidad de uso.

EDITAR (2013 Jun 16ª):

ahora más de un año después tenemos un claro ganador. Al principio fuimos con tastypie. Lo que nos gustó un poco. Pero después de medio año más o menos, pasamos al siguiente django-rest-framework y nunca miramos hacia atrás.

Lo que más me gusta de ella:

  • Niza documentación

  • activa de la comunidad

  • Diseño limpio (aprovechar las vistas basadas en la clase de Django)

  • API navegable para desarrollo y depuración

Confiamos en la API en gran medida, por lo que el soporte (en el futuro) es una de nuestras principales preocupaciones. Nos encontramos con el responsable, Tom Christie, (on y offline) y parece muy comprometido con el proyecto. Entonces nos sentimos muy cómodos usando el django-rest-framework.

Respuesta

28

Un buen recurso para compararlas es http://www.djangopackages.com/grids/g/api/

Django-tastypie segura es la opción guardar en este momento.

Personalmente, recomendaría un vistazo a django-rest-framework si usa django 1.3, porque usa las nuevas vistas basadas en clases. La página de comparación de djangopackages.com muestra que tiene buena participación y actividad. Y, wow, seguro tiene un nice browsable interface para la API.

+2

Tendré que dejar esto como un comentario, porque por alguna razón, los revisores han rechazado actualizar los enlaces a * punto en el lugar correcto * ya que "esta edición es demasiado pequeña". Documentos: http://django-rest-framework.org/ Ejemplo de API navegable: http: //restframework.herokuapp.com/ –

+0

Gracias por los enlaces actualizados; Los he arreglado –

+0

+1: Esa página de comparación es realmente agradable. Me parece que django-rest-framework es definitivamente la opción correcta: tiene la mayor actividad en github (por lo que todavía se mantiene activamente) y es la única que está etiquetada como lista para producción. – ArtOfWarfare

24

que no tienen experiencia con esto, pero confío en este Pydanny:

django-pistón apenas ha sido apoyado por casi dos años. Eso es una eternidad, y la cantidad de horquillas para abordar múltiples problemas es una causa de alarma . Por eso, en su lugar en este momento, yo recomiendo django-tastypie. Está actualizado, tiene muy buena documentación de , admite OAUTH y obtuvo el segundo lugar en el paquete de Django thunderdome (¡obtuvo casi el triple de puntos!). Otra herramienta a considerar es Django Rest Framework, que es tan buena como django-tastypie pero carece del soporte OAUTH.

En el frente de django-pistón, Joshua Ginsberg ha tomado las riendas y esperamos ver algún movimiento otra vez. En ese caso, seré capaz de eliminar esta sección de la publicación del blog.

de Pydanny's blog.

+3

Actualización del blog de Pydanny: http://pydanny.com/choosing-an-api-framework-for-django.html. Resumen: django-piston está muerto, larga vida tastypie y django-rest-framework. –

18

Después de haber implementado las API con django Piston, tastypie y django webmachine Django tastypie rocks! Habiendo dicho eso, creo que mientras que tastypie es realmente bueno cuando tu API se modela cerca de tus modelos, es un poco más complicado hacer las cosas una vez que quieres salir de la caja. Hay soluciones para algunos issues, con otros tienes que doblar más que construir. Probablemente cubrirá el 90% de los casos de uso de django.

Afaik Webmachine se inspiró en el popular erlang webmachine, pero últimamente no ha estado muy activo. Así que eso deja al pistón, que está recogiendo algo de actividad, y sabroso, que tiene mucho ímpetu y actividad. Piston es un poco más flexible, pero tastypie se mueve muy rápido y, en mi opinión, tiene una API realmente fácil.

Mi recomendación sería implementar rápidamente un prototipo de la API en tastypie, y ver si cubre lo que quieres hacer.

5

Django REST framework 2.0 fue anounced in Oct 2012 y ahora es compatible con OAuth fuera de la caja. Lo que realmente me gusta es el Web browseable API, que es realmente útil al desarrollar su API, pero también cuando alguien implementa su API. Es similar al uso del sitio de administración de Django para inspeccionar la estructura y los datos de sus modelos, pero luego para su API. También la documentación es muy buena.

Desde su página web:

marco de Django REST es un conjunto de herramientas de gran alcance y flexible que hace que sea fácil de construir Web APIs.

Algunas de las razones es posible que desee utilizar marco RESTO:

  • La API Web browseable es una gran victoria usabilidad para sus desarrolladores.
  • Políticas de autenticación que incluyen OAuth1a y OAuth2 listas para usar.
  • Serialización que admite fuentes de datos ORM y no ORM.
  • Personalizable hasta el final: solo use vistas basadas en funciones regulares si no necesita las funciones más potentes.
  • Extensa documentación y excelente soporte para la comunidad.

El registro de su guía Quickstart para obtener una idea rápida de cómo funciona.