Créer un API Rest avec Symfony 3

Resultat vide

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Je suis en train de suivre le tutoriel Créer une API rest avec symfony 3 et j’ai un problème avec le serializer symfony sur mon projet.

J’ai une action de controller qui s’appel getCustomersAction qui doit me retourner l’ensemble des clients. Le résultat obtenu quand je fais appel a cet action est le suivant : [[],[],[],[],[]] Quelqu’un aurait une idée de pourquoi l’ensemble de mes données est vide ?

+0 -0
Auteur du sujet

voici le path de mon fichier de conf : ~/nomduprojet/src/AppBundle/Resources/config/serialization.yml

voici le contenu du fichier :

AppBundle\Entity\Customer: id: groups: [’customer’] cUA: groups: [’customer’] email: groups: [’customer’] status: groups: [’customer’] participants: groups: [’customer’] shoppingCart: groups: [’customer’] totalToPay: groups: [’customer’] customerStatusHistoryCollection: groups: [’customer’] payments: groups: [’customer’]

AppBundle\Entity\Participant: civility: groups: [’customer’, ’participant’] firstName: groups: [’customer’, ’participant’] lastName: groups: [’customer’, ’participant’] dateOfBirth: groups: [’customer’, ’participant’] nationalty: groups: [’customer’, ’participant’] homePhoneNumber: groups: [’customer’, ’participant’] mobilePhoneNumber: groups: [’customer’, ’participant’] customer: groups: [’participant’]

Édité par gusavy

+0 -0
Auteur du sujet

Oui voici mon controller :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class CustomerController extends Controller
{
    /**
     * @Rest\View(serializerGroups={"customer"})
     * @Rest\Get("/api/customers")
     */
    public function getCustomersAction(Request $request)
    {
        /** @var Customer[] $customers */
        $customers = $this->getDoctrine()->getManager()->getRepository('AppBundle:Customer')->findAll();

        //dump($customers); exit();

        return $customers;

    }

//...Reste du code
}
+0 -0

Les fichiers de serialisation sont mal configurés. Il te manque le niveau attributes avant la liste de tes attributs.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# src/AppBundle/Resources/config/serialization.yml
AppBundle\Entity\Place:
    attributes:
        id:
            groups: ['place', 'price']
        name:
            groups: ['place', 'price']
        address:
            groups: ['place', 'price']
        prices:
            groups: ['place']

Édité par BestCoder

Auteur du sujet

C’était exactement ça. Ca marche nickel maintenant. Merci pour ta réponse rapide.

PS : Une petite question au passage. Est il nécessaire d’utiliser le JMSSerializerBundle ou le Serializer symfony est amplement suffisant?

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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