2015-11-25 4 views
1

Je suis en train de concevoir une API REST pour un logiciel de test et j'ai un doute. J'ai beaucoup cherché mais ce n'est pas assez clair pour moi. Mon scénario est une file d'attente contenant plusieurs tâches à imprimer. Ces tâches sont des objets complexes et le flux de travail d'impression est une autre action complexe. Je ne sais pas quelle opération correspond le mieux à cela. Selon ce, il devrait être un POST?REST Api print file design

http://restful-api-design.readthedocs.org/en/latest/methods.html

Dans ce cas, mon action s'adaptera mieux dans un modèle RPC, mais nous devons utiliser REST selon que 95% des actions correspond parfaitement à ce modèle.

Dans le cas d'un POST, je dois envoyer la file d'attente que je veux imprimer dans le corps?

Merci beaucoup.

Répondre

2

Je ne sais pas ce que vous voulez exposer à travers votre API REST mais j'y penserais.

Vous pouvez exposer une ressource avec le chemin /printjobs correspondant à la file d'attente d'impression. L'utilisation d'une méthode POST ajouterait un travail dans la file d'attente. Le code d'état renvoyé serait 202 Accepted car il s'agit d'un élément asynchrone et renvoie un identifiant pour le nouveau travail. Quelque chose en arrière-plan serait responsable de gérer le travail dans la file d'attente. Je pense que c'est quelque chose de différent de l'API REST.

Ensuite, vous pouvez utiliser une ressource /printjobs/{id} qui vous donnera des conseils sur l'état de la tâche (méthode GET), supprimer (méthode DELETE) et mettre à jour son statut (par exemple pour le suspendre avec la méthode PUT ou PATCH)/

espérons qu'il vous aidera, Thierry

+0

Merci beaucoup, qui était très utile pour ma solution. J'ai mal compris certains concepts sur le repos mais maintenant c'est beaucoup plus clair. – acostela

+1

Je suis heureux d'entendre cela ;-) De rien! Ce lien pourrait vous donner quelques indications supplémentaires: http: //restlet.com/blog/2015/03/16/designing-a-web-api/... –