32 votes

Django RESTful API - django-piston vs. django-tastypie

Nous sommes à la recherche d'une solution générale d'API RESTful pour notre projet Django. Nous utiliserions l'API dans un premier temps pour des appels Ajax sur le site web et plus tard pour des applications mobiles, des applications externes et des choses comme ça.

J'ai trouvé deux modules qui semblent être largement utilisés. django-piston et django-tastypie

D'après ce que j'ai lu, piston semble être plus ancien et donc plus mature mais peut-être un peu dépassé ! Alors que tastypie est relativement nouveau et bien documenté.

Quelle serait la meilleure chose à faire ? django-piston ou django-tastypie ? Important pour nous (commandé par priorité) : La maintenance continue des sources, la documentation, la stabilité, la facilité d'utilisation.

EDIT (16 juillet 2013) :

Maintenant, plus d'un an plus tard, nous avons un vainqueur clair. Au début, nous avons choisi tastypie. Que nous aimions bien. Mais après six mois environ, nous sommes passés au nouveau site django-rest-framework et n'a jamais regardé en arrière.

Ce qui nous plaît le plus :

  • Bonne documentation

  • Communauté active

  • Conception propre (fondée sur les vues basées sur les classes de Django)

  • API navigable pour le développement et le débogage

Nous nous appuyons fortement sur l'API et le support (à l'avenir) est l'une de nos principales préoccupations. Nous avons rencontré le mainteneur - Tom Christie - (en ligne et hors ligne) et il semble très engagé dans le projet. Nous nous sentons donc très à l'aise avec le cadre django-rest.

29voto

Reinout van Rees Points 5483

Une bonne ressource pour les comparer est http://www.djangopackages.com/grids/g/api/

Django-tastypie est certainement le choix le plus sûr en ce moment.

Personnellement, je préconise un regard sur django-rest-framework si vous utilisez django 1.3, car il utilise les nouvelles vues basées sur les classes. La page de comparaison de djangopackages.com montre qu'il a une bonne participation et une bonne activité. Et, wow, il a vraiment un interface agréable à parcourir à l'API.

24voto

Density 21.5 Points 1449

Je n'ai aucune expérience en la matière, mais je fais confiance à Pydanny :

django-piston est à peine supporté depuis presque deux ans. Cela représente une éternité, et le nombre de bifurcations pour résoudre de multiples problèmes est une cause d'alarme. Pour cette raison, à sa place, je recommande pour le moment recommande django-tastypie. Il est à jour, a de très bonnes très bonne documentation, supporte OAUTH, et a obtenu la deuxième place dans l'indice Packages (il a obtenu près de 3x plus de points !). Un autre outil outil à considérer est Django Rest Framework, qui est aussi bon que django-tastypie mais ne prend pas en charge OAUTH.

Sur le front de django-piston, Joshua Ginsberg a repris les rênes et nous devrions espérer voir un peu de mouvement à nouveau. Dans ce cas, je pourrai de supprimer cette section de l'article de blog.

de Pydanny's blog .

18voto

ashwoods Points 1479

Ayant mis en œuvre des API avec django Piston, tastypie et django webmachine Django tastypie est génial ! Cela dit, je pense que si tastypie est vraiment bien lorsque votre API est calquée sur vos modèles, il est un peu plus compliqué de faire les choses dès que vous voulez sortir de la boîte. Il y a des solutions de contournement pour certains questions Avec d'autres, il faut plus plier que construire. Il couvrira probablement encore 90% des cas d'utilisation de Django.

Afaik Webmachine a été modelé d'après le populaire erlang webmachine, mais n'a pas été très actif dernièrement. Il reste donc Piston, qui connaît une certaine activité, et Tastypie, qui a beaucoup d'élan et d'activité. Piston est un peu plus flexible, mais tastypie évolue très rapidement et, à mon avis, son API est très simple.

Ma recommandation serait d'implémenter rapidement un prototype de l'API dans tastypie, et de voir si cela couvre ce que vous voulez faire.

5voto

rednaw Points 3856

Cadre REST de Django 2.0 était annoncée en octobre 2012 et prend désormais en charge OAuth hors de la boîte. Ce que j'aime vraiment, c'est le API consultable sur le Web ce qui est très utile lors du développement de votre API, mais aussi lorsque quelqu'un met en œuvre votre API. C'est un peu comparable à l'utilisation du site d'administration de Django pour inspecter la structure et les données de vos modèles, mais ensuite pour votre API. La documentation est également très bonne.

Sur leur site web :

Le cadre REST de Django est une boîte à outils puissante et flexible qui permet de de construire facilement des API Web.

Quelques raisons pour lesquelles vous pourriez vouloir utiliser le cadre REST :

  • L'API navigable sur le Web est un énorme gain de convivialité pour vos développeurs.
  • Politiques d'authentification, y compris OAuth1a et OAuth2, prêtes à l'emploi.
  • Sérialisation qui prend en charge les sources de données ORM et non ORM.
  • Personnalisable jusqu'en bas de l'échelle - utilisez simplement des vues normales basées sur des fonctions si vous n'avez pas besoin des fonctionnalités plus puissantes.
  • Une documentation complète et un support communautaire important.

Consultez leur Démarrage rapide pour avoir une idée rapide de son fonctionnement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X