Je n'arrive pas à trouver beaucoup d'informations sur le web sur les différentes approches pour la construction d'une API REST dans les Rails; donc j'ai un peu poser deux questions:
- Quelqu'un peut-il m'indiquer quelques articles qui montrent les avantages/inconvénients des différentes approches?
- Veuillez s'il vous plaît de partager vos pensées sur les avantages/inconvénients des approches suivantes?
Les Approches Proposées
-
Utiliser les contrôleurs standard de renvoyer du XML lorsqu'un utilisateur ajoute
.xml
à la fin de l'URLPour:
- C'est intégré dans les Rails et très facile à utiliser
- Suit la même ressource approche fondée sur les Rails de a, de sorte qu'il sera facile pour
les utilisateurs existants de comprendre/rappelez-vous
Inconvénients:
- L'API n'est pas clairement séparées à partir du site principal, plus difficile à maintenir
- Les gens peuvent supposer que l'ajout d'
.xml
permettra de travailler dans des endroits qu'il n'a pas
-
Utilisation des espaces de routage pour créer des contrôleurs d'API qui ne traitent que des API fonctions, mais encore avoir accès aux mêmes modèles que le site utilise des
Pour:
- L'API est la plupart du temps séparés
- Utilise toujours les ressources complète de contrôleurs
Inconvénients:
- Les URLs sont de la forme de site.com/api/resource.xml ce qui peut rendre les gens supposent tous des ressources sont disponibles
- API est encore partie du code du site/projet; par conséquent, plus difficile à maintenir
-
Utiliser l'itinéraire de l'acheminement et des contraintes pour transférer tous les appels d'API à un Rack application
Pour:
- L'API est entièrement séparé
- Pas besoin d'utiliser la Ressource-plein de style, si nous ne voulons pas
- Url montrent clairement c'est une API et vous devriez vérifier les docs de voir ce qui est disponible (au moins, mon esprit fonctionne de cette façon; je suppose que d'autres dev esprits aussi)
Inconvénients:
- Plus difficile à utiliser des modèles de code de site web
- Plus facile à maintenir car un autre projet, mais cela signifie que plus difficile à intégrer avec site existant
- Doit garder des bases de codes de synchronisation comme les modèles peuvent changer pour le site des fonctionnalités et des corrections de bugs