Disons que j'ai un point d'extrémité de repos pour ma ressource de pilote. J'ai une méthode PUT comme celle-ci
myapi/drivers/{id}
{body of put method}
J'ai besoin d'ajouter des fonctionnalités qui permettront d'activer et de désactiver le pilote
Est-ce une bonne idée de créer un nouveau point de terminaison pour cela comme ça?
PUT myapi/drivers/{id}/enable/false
ou est-il préférable d'utiliser un point de terminaison existant? Un problème avec l'utilisation du point de terminaison existant est que le pilote a beaucoup de champs (près de 30) et l'envoi de tous ces champs juste pour la mise à jour uniquement du pilote "activé" ou "désactivé" est quelque chose de excessif.
Qu'est-ce que tu penses?
C'est exactement pour cela que la méthode HTTP PATCH
est conçue. Il est utilisé dans les cas où la ressource a de nombreux champs mais que vous ne souhaitez en mettre à jour que quelques-uns.
Tout comme avec PUT
, vous envoyez une demande à myapi/drivers/{id}
. Cependant, contrairement à PUT
, vous envoyez uniquement les champs que vous souhaitez modifier dans le corps de la demande.
Création de points de terminaison comme myapi/drivers/{id}/enable
n'est pas très RESTful, car "enable" ne peut pas vraiment être appelé une ressource à lui seul.
Pour un exemple d'implémentation d'un point de terminaison Spring PATCH
, veuillez consulter ceci link .
Utilisez la méthode PATCH Http pour mettre à jour un champ
PATCH myapi/drivers/{id}/enable