141 votes

Méthode RESTful pour créer plusieurs éléments en une seule requête

Je travaille sur un petit programme client-serveur pour collecter les commandes. Je veux faire cela d'une manière "REST(ful)".

Ce que je veux faire, c'est :

Collecte de toutes les lignes de commande (produit et quantité) et envoi de la commande complète au serveur.

Pour l'instant, je vois deux options pour y parvenir :

  1. Envoyer chaque ligne de commande au serveur : POST qty et product_id

En fait, je ne veux pas faire cela parce que je veux limiter le nombre de demandes au serveur, donc l'option 2 :

  1. Rassemblez toutes les lignes de commande et envoyez-les au serveur en une seule fois.

Comment dois-je mettre en œuvre l'option 2 ? J'ai quelques idées : Envelopper toutes les lignes de commande dans un objet JSON et l'envoyer au serveur ou utiliser un tableau pour afficher les lignes de commande.

Est-ce une bonne idée ou une bonne pratique de mettre en œuvre l'option 2, et si oui, comment dois-je m'y prendre ?

Qu'est-ce qu'une bonne pratique ?

6voto

zakovyrya Points 5403

Je suppose qu'il est préférable d'envoyer des demandes séparées au sein de connexion unique . Bien sûr, votre serveur web doit le supporter.

1voto

Je pense que le Pipelining est la réponse dont vous avez besoin, qui est décrite dans les commentaires précédents lien "connexion unique".

-3voto

Cheery Points 6696

Vous ne voudrez pas envoyer les en-têtes HTTP pour 100 lignes de commande. Vous ne voulez pas non plus générer plus de requêtes que nécessaire.

Envoyer la commande entière dans un seul objet JSON au serveur, à : server/order ou server/order/new. Retourne un objet qui pointe vers : server/order/order_id

Pensez également à utiliser CRÉER PUT au lieu de POST

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X