Créez une API REST avec Symfony 3 : modifier dynamiquement les groupes de serialisation avec la querystring

a marqué ce sujet comme résolu.

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

Bonjour,

Effectivement avec un fichier j’espère que ce sera plus clair.

http://www.cjoint.com/c/ELnlUIM2D6Z

J’ai essayé d’intégrer un calendrier mais je n’arrive pas à sélectionner une semaine de vendredi à vendredi.

Pour rappel, Cette permanence est établi 2 fois par an. Les effectifs peuvent varier (mutation, changement de service,…) donc je ne sais si je dois partir sur une bdd?

J’aimerai intégrer le calendrier pour sélectionner les périodes (2017,…)

J’aimerai que ce tableau soit automatisé;Si je pouvais avoir quelques conseils.

Merci.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte