L'ajout de REPOS à Django
J'ai une application Django qui fonctionne très bien. Je suis ajoutant des services REST. Je suis à la recherche pour certains autres commentaires sur mon RESTE de la stratégie.
Voici quelques exemples de choses que je suis en tordant mes mains sur.
- Maintenant, je suis en utilisant Django-API REST avec un tas de patchs.
- Je pense que je vais retomber simplement d'écrire les fonctions d'affichage dans Django qui retournent des résultats JSON.
- Je peux aussi voir filtrage des requêtes REST dans Apache et de routage sur un autre, non-Django instance de serveur.
Merci de proposer une approche pour répondre afin que nous puissions voter en haut ou en bas.
Vous devez vous connecter pour publier un commentaire.
Veuillez noter que le REPOS ne signifie pas seulement des résultats JSON. RESTE essentiellement, cela signifie que l'exposition d'une ressource API orientée indigènes, mais à part entière HTTP. Je ne suis pas un expert sur le REPOS, mais voici quelques-unes des choses que les Rails sont en train de faire.
Par exemple, pour obtenir le natif de la prise en charge HTTP, le serveur doit répondre à
car elle permettrait de répondre à
Et qu'il doit répondre aux
car elle permettrait de répondre à
Pour quelqu'un d'autre la recherche d'un très décent, enfichable de l'application de l'API pour Django, assurez-vous de la caisse jespern de django-piston qui est utilisé en interne au BitBucket.Il est bien entretenu, a une grande suite et quelques frais de forks qui faire des choses comme ajouter le support pour la pagination et les autres méthodes d'authentification (l'authentification OAuth est pris en charge hors de la boîte).Mis à jour pour refléter le fait que django-piston n'est plus maintenu.
Tastypie est aussi une nouvelle REPOS cadre de Django.
Il a la même mentalité que les pistons, et supprime beaucoup de standard de codage.
Ma réponse à la même question ici: Cadre pour la mise en Œuvre de services web REST dans Django
La version courte est, jetez un oeil à https://github.com/jgorset/django-respite/ un REPOS cadre dans ses premiers jours, mais nous l'utilisons chaque jour sur des projets du client.
Ferraille Django REST api et de venir avec votre propre projet open source que d'autres peuvent y contribuer. Je serais disposé à contribuer. J'ai un code qui est basé sur les formes de l'api pour le faire REPOSER.
Je voudrais aller avec ça ..
Ali, Un résumé assez bien.
Le point principal pour moi est beign explicite. Je voudrais éviter d'utiliser une fonction qui convertit automatiquement un objet en json, que si l'objet est une référence à un utilisateur, et en quelque sorte le mot de passe (même si c'est haché) allez dans le json snippit?
J'ai fini par aller avec mon propre API REST cadre de Django (que je serais ravi de se débarrasser de si je peux trouver une alternative réalisable), avec quelques vues personnalisées, juste pour le cas du coin je n'ai pas voulu traiter avec. Il est travaillé sur ok.
Donc une combinaison de 1 et 2; sans une certaine forme de cadre, vous aurez à écrire le même texte standard pour la plupart des cas.
J'ai aussi fait un peu de stand-alone Api. J'aime les avoir en tant que stand-alone de services, mais le fait même qu'ils sont seul contre le reste du code conduit à les avoir négligés. Pas de raison technique; simplement out-of-sight, out-of-mind.
Ce que j'aimerais vraiment voir est une approche qui unifie Django formes et des Api REST, comme ils partagent souvent beaucoup de logique. Conceptuellement, si votre application expose quelque chose en HTML, il veut vraisemblablement à l'exposer par programme ainsi.
Vous pourriez jeter un regard à django-dynamicresponse, ce qui est un léger cadre pour l'ajout de l'API REST JSON de votre Django applications.
Elle nécessite peu de modifications pour ajouter la prise en charge des API existantes Django apps, et le rend simple à construire-dans l'API depuis le début de nouveaux projets.
En fait, il inclut middleware support de l'analyse JSON en demande.La POSTE, en plus de la sérialisation de l'retourné contexte JSON ou le rendu d'un modèle/redirection conditionnelle en fonction du type de demande.
vous pouvez essayer de faire un générique de fonctions qui traitent les données (comme parand mentionné) que vous pouvez appeler à partir de vues de générer les pages web, ainsi que celles qui génèrent le json/xml/whatever
TastyPie semble tout à fait intéressant et prometteur. Il va bien avec Django.