Question

Tout notre système est conçu autour REST et envisagent maintenant comment les processus qui sont RPC dans l'intention très clairement peuvent être mises en correspondance avec les ressources RESTful sans utiliser les verbes dans l'URL. Notre appel de procédure à distance est utilisé pour reconstruire notre index de recherche lorsqu'une liste de contenu a été modifié ailleurs.

Ce que nous pensons à faire est la suivante:

POST / index_updates

<indexUpdate><contentId>123</contentId></indexUpdate>

Rien de mal à cela en soi, mais l'odeur est cette ressource qui a été créé ne renvoie pas l'URL de la ressource nouvellement créée par exemple / index_updates / 1234 que nous pouvons accéder à une requête GET.

Le moteur d'indexation que nous utilisons a un mécanisme de journal, en théorie, nous pourrions retourner une URL à une ressource index_update afin de permettre une requête GET pour récupérer la ressource, mais pour être honnête, nous ne sommes pas intéressés à la ressource comme cela est rien de plus qu'un RPC déguisé.

Alors, ma question est de savoir si restfulness est exprimée dans la structure ou l'intention. Je me sens la structure de ce que je viens de décrire est reposante, mais l'intention est pas.

Quelqu'un at-il un commentaire ou des conseils?

Merci,

Chris

Était-ce utile?

La solution

Utilisez l'outil pour le travail. Dans ce cas, il semble sans aucun doute comme l'outil droit est un appel de procédure à distance pur, et il n'y a aucune raison de prétendre qu'il est REST.

Autres conseils

L'une des raisons que vous pourriez revenir un nouvel identifiant de ressource de votre POST / index_updates appel est de surveiller l'état de l'opération.

  

POST / index_updates
   123

201 Created
Location: /index_updates/a9283b734e
  

GET / index_jobs / a9283b734e

 <index_update><percent_complete>89</percent_complete></index_update>

Ceci est évidemment un domaine subjectif, mais GET PUT POST SUPPRIMER est assez riche vocabulaire pour décrire quoi que ce soit. Et quand je vais vers les pays asiatiques non-anglophones I, point juste et ils savent ce que je veux dire que je ne parle pas la langue ... mais il est difficile d'être vraiment dans une belle conversation avec quelqu'un ...

Il est pas une mauvaise idée de déguiser RPC comme REST, puisque c'est l'exercice. Personnellement, je pense que SOAP a été défoncé et haï alors qu'en fait, il possède de nombreux atouts (et avec la compression HTTP, HTTP / SSL et les cookies, beaucoup plus forts) ... et votre application est vraiment exposeraient méthodes pour le client d'appeler. Pourquoi voudriez-vous traduire pour se reposer? Je ne l'ai jamais été convaincu. SOAP vous permet d'utiliser une langue que nous connaissons et aimons, celle de l'interface de programmation.

Mais pour répondre à votre question, est une mauvaise idée de déguiser RPC comme REST? Non déguisant RPC comme repos et traduire les quatre opérations de base est ce que la chose est sur le point. Si vous pensez que c'est cool est ou non une autre histoire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top