Bonjour
j’ai suivi avec beaucoup d’attention du tuto et j’ai des questions complémentaires :
Avec les annotations de groupe de sérialisation on peut définir quels champs seront retournés lors de la sérialisation.
Mais imaginons que je souhaite parfois appeller mon API GET rest-api.local/places et obtenir juste la liste des places, et parfois l’appeller et avoir la liste des places et tous ses enfants (prices).
Pour rester cohérent avec REST je ne peux pas creer une autre route spéciale pour ce cas rest-api.local/placesAvecEnfants
J’ai lu dans Rest Api Design Rulebook de Mark Massé chez O’reilly : - Rule: The query component of a URI should be used to support partial responses - Rule: The query component of a URI should be used to embed linked resources
exemple : GET /students/morgan?fields=(firstName, birthDate) pour spécifier les champs à retourner exemple : GET /students/morgan?embed=(favoriteClass) pour spécifier que la classe fille favoriteClass doit être inclue/détaillée dans la réponse
cela revient a faire varier les groupes de sérialisation mais comment fait-on pour le faire sans les mettre en annotation ?
Par ailleurs, le livre indique qu’il est une bonne pratique de fournir les liens vers les ressources dans la réponse, ainsi le contenu est auto descriptif et le client peut accéder facilement aux classes enfants. Ex :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | { "firstName" : "Morgan", "birthDate" : "1992-07-31", "favoriteClass" : { "id" : "japn-301", "name" : "Third-Year Japanese", "links" : { "self" : { "href" : "http://api.college.restapi.org/classes/japn-301", "rel" : "http://api.relations.wrml.org/common/self" } } } # Other fields... "links" : { "self" : { "href" : "http://api.college.restapi.org/students/morgan", "rel" : "http://api.relations.wrml.org/common/self" }, # Other links... } } ` |
Comment peut-on générer automatiquement ces adresses avec le sérialiseur ?
Merci d’avance