Je n'ai jamais construit d'API RESTful auparavant et je me demande à quel point cela devrait être discret?
Par exemple, disons que j'ai un client qui a un nom, une adresse, un numéro de téléphone, une adresse e-mail, une langue, etc.
Est-il logique qu'il existe un moyen de mettre à jour chaque champ individuel (adresse de mise à jour, adresse e-mail de mise à jour, etc.), ou devrait-il y avoir une seule mise à jour pour l'ensemble du client et chaque champ est facultatif?
Réponses:
Vous avez une action de mise à jour pour une ressource. En règle générale, une table de votre base de données sera une ressource. Ainsi, dans votre exemple, il y a un contrôleur pour le client avec une action de mise à jour et les champs sont facultatifs dans la mesure du possible.
Il peut y avoir des exceptions à cela (par exemple, si vous mettez à jour le mot de passe, vous vous attendez à password & password_confirmation), mais cela est vrai dans la plupart des cas.
Il est plus probable que les exceptions soient des contrôleurs qui ont des actions limitées pour certaines ressources, comme un SessionsController qui ne peut être créé et détruit. Il est très peu probable que vous souhaitiez avoir des actions pour des champs uniques.
Dans votre exemple, une chose pourrait être gérée comme une ressource propre et c'est l'adresse. Si vous disposiez d'une table d'adresses, surtout s'il y avait plus d'une adresse par client (facturation, livraison ...) cela pourrait être traité comme une ressource imbriquée. Mais encore une fois une action de mise à jour pour la ressource d'adresse entière.
la source