J'ai une application Django qui fonctionne bien. J'ajoute des services REST. Je recherche des entrées supplémentaires sur mon REST.
Voici quelques exemples de choses que je tends la main.
Veuillez nommer une approche par réponse afin que nous puissions voter pour ou contre.
Je pense à revenir à simplement écrire des fonctions de vue dans Django qui retournent des résultats JSON.
Veuillez noter que REST ne signifie pas seulement les résultats JSON. REST signifie essentiellement exposer une API orientée ressources sur HTTP natif mais à part entière. Je ne suis pas un expert sur REST, mais voici quelques-unes des choses Rails fait.
Par exemple, pour obtenir la prise en charge native de HTTP, le serveur doit répondre à
GET /account/profile HTTP/1.1
Host: example.com
Accept: application/json
car il répondrait à
GET /account/profile.json HTTP/1.1
Host: example.com
Et il devrait répondre à
PUT /account/profile HTTP/1.1
Host: example.com
var=value
car il répondrait à
POST /account/profile HTTP/1.1
Host: example.com
_method=PUT&var=value
Pour tous ceux qui recherchent une application API très décente et enfichable pour Django, assurez-vous de vérifier Django-piston de jespern qui est utilisé en interne sur BitBucket.
Il est bien entretenu, a un excellent suivi et des fourchettes sympas qui font des choses comme ajouter la prise en charge de la pagination et d'autres méthodes d'authentification (OAuth est pris en charge hors de la boîte).
Mis à jour pour refléter que le piston Django n'est plus maintenu.
Tastypie est également un nouveau framework REST pour Django. Il a le même état d'esprit que les pistons et supprime beaucoup de codage standard).
Ma réponse à la même question ici: Framework for Implementation REST web service in Django
La version courte est, jetez un oeil à https://github.com/jgorset/Django-respite/ a REST framework à ses débuts, mais nous utilisons tous les jours sur des projets clients.
Scrap the Django REST api and come up with your open open project that others can contribution to. Je serais prêt à contribuer. J'ai du code qui est basé sur les formulaires api pour faire REST.
Je pense à revenir à simplement écrire des fonctions de vue dans Django qui retournent des résultats JSON.
J'irais avec ça ..
ALi A l'a assez bien résumé.
Le point principal pour moi est beign explicit. J'éviterais d'utiliser une fonction qui convertit automatiquement un objet en json, que faire si l'objet a une référence à un utilisateur et que le mot de passe (même s'il est haché) va dans le snippit json?
Vous pouvez jeter un œil à Django-dynamicresponse , qui est un cadre léger pour ajouter REST avec JSON à vos applications Django).
Il nécessite des modifications minimes pour ajouter la prise en charge de l'API aux applications Django existantes), et facilite la création d'API dès le début dans de nouveaux projets.
Fondamentalement, il inclut la prise en charge du middleware pour analyser JSON dans request.POST, en plus de sérialiser le contexte renvoyé en JSON ou de rendre un modèle/redirection conditionnellement en fonction du type de demande.
J'ai fini par utiliser mon propre REST API pour Django (dont j'aimerais me débarrasser si je peux trouver une alternative viable)), avec quelques vues personnalisées pour les cas d'angle que je ne voulais pas traiter.
Donc, une combinaison de 1 et 2; sans une certaine forme de cadre, vous finirez par écrire le même passe-partout pour les cas courants.
J'ai également réalisé quelques API autonomes. J'aime les avoir en tant que services autonomes, mais le fait même qu'ils soient indépendants du reste du code les amène à être négligés. Aucune raison technique; simplement hors de vue, hors de l'esprit.
Ce que j'aimerais vraiment voir, c'est une approche qui unifie Django formulaires et REST APIs, car ils partagent souvent beaucoup de logique. Conceptuellement, si votre application expose quelque chose en HTML qu'il souhaite probablement également exposer par programme.
vous pouvez essayer de créer des fonctions génériques qui traitent les données (comme parand mentionné) que vous pouvez appeler à partir des vues qui génèrent les pages Web, ainsi que celles qui génèrent le json/xml/que ce soit
TastyPie semble assez intéressant et prometteur. Ça va bien avec Django.