2010-04-23 5 views
3

Cela semble être une question élémentaire, mais après beaucoup de recherche semblent je peux autour de ne pas trouver une explication simple:Dois-je séparer les contrôleurs API RESTful des contrôleurs "standards"?

Si je construis une application web qui va être largement accessible via un navigateur Web , mais cela va également prendre en charge certaines demandes d'API de manière RESTful, devrait-il y avoir un grand degré de séparation entre les deux?

D'une part, il semble une grande quantité de la fonctionnalité est la même, avec des données identiques présentées dans différentes vues (HTML par rapport à XML/JSON). Mais d'un autre côté, il y a certaines choses que je dois présenter au navigateur qui ne correspondent pas à une approche RESTful: comment obtenir un formulaire vide pour créer une nouvelle instance d'une ressource et comment obtenir un formulaire pré-rempli pour modifier une ressource existante.

Si ces deux méthodes différentes d'accès au système par canalisé à travers différents contrôleurs? Différentes méthodes dans le même contrôleur? Les mêmes méthodes avec un commutateur pour le type de vue?

Répondre

0

Vos contrôleurs de base ne doivent pas changer, mais cela ne signifie pas que vous ne pouvez pas avoir des ceux supplémentaires uniquement pour vous soutenir l'interface utilisateur. Par exemple, les deux exemples de formulaire que vous avez peuvent être uniques à l'API Web. Vos URI d'entrée peuvent certainement avoir des liens vers ces pages pour l'interface machine et l'interface utilisateur, mais ne vous attendez pas à ce que les utilisateurs de la machine les utilisent réellement. De plus, si vos clients machine sont simplement XML/JSON, ces représentations n'ont pas du tout besoin de ces liens, car elles ne les utilisent pas et ne fonctionnent pas dans JSON/XML quand même. Vous pouvez gérer cela grâce à la négociation de contenu.

Questions connexes