Lors de la création d'une API REST, les champs ajoutés à une réponse dans la version 2 doivent-ils renvoyer la réponse d'un appel au point de terminaison de la version 1?Les champs ajoutés doivent-ils être visibles dans les versions d'API inférieures?
À titre d'exemple, étant donné le point de terminaison api/v1/users/1
, la réponse pourrait être:
{
"first_name":"david"
}
Puis v2, étant donné le point final api/v2/users/1
, la réponse pourrait être mis à jour pour être:
{
"first_name":"david",
"last_name":"smith"
}
Would Est-ce une mauvaise pratique d'avoir la même réponse retournée d'un appel au point de terminaison v2 retourné sur un appel au point de terminaison v1? Ma première pensée est oui, mais là encore, je ne vois pas de problème, car ce changement ne serait pas rompu. En guise de remarque, la question se posait d'essayer de comprendre comment construire une API avec version en utilisant Laravel et Eloquent. Je ne peux pas facilement voir un moyen d'accomplir cela avec Eloquent, et je devrais mapper le modèle à un modèle versionné, ou écrire tous mes dépôts avec QueryBuilder pour contrôler les champs. Marqué comme Laravel et Eloquent puisque ce sont les cadres spécifiques que j'utilise et que je veux voir si quelqu'un a une solution en utilisant ceux-ci, mais la question est pour api design en général.