Symfony2 JSON exemple
Question
Je suis en train de mettre en place un exemple JSON en utilisant Symfony2.
J'ai créé un paquet de test, une entité de test ( « Message »), mis en place le ORM etc
Le (tableau) Message a les colonnes suivantes: id, titre, texte
Je suis en train d'exposer une route * / mydomain / message qui exposerait une interface JSON à la table des messages (une petite liste)
La première méthode que j'ai essayé était:
Créer une classe MessageController que les utilisations Symfony\Component\HttpFoundation\Response
et a une fonction comme ceci:
public function testAction() {
$response = new Response(json_encode(**code_req_here**));
return $response;
}
et définir un itinéraire comme ceci:
test:
pattern: /test
defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}
requirements: { _format: (xml|json), _method: GET }
- est-ce une méthode correcte?
- qu'est-ce que je mets sur le
code_req_here
?
la deuxième méthode que j'ai essayé était en utilisant le FOS / RestBundle mais n'a pas réussi à compléter le guide correctement que je comprends, si
- S'il vous plaît fournir un petit guide sur la façon de faire (juste) avec ce FOS / RestBundle
La solution
est-ce une méthode correcte?
Oui je l'aime mais je modifier la règle de routage un peu comme ceci:
test:
pattern: /test.{_format}
defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}
requirements: { _format: (xml|json), _method: GET }
qu'est-ce que je mets sur le code_req_here?
Mettez le tableau que vous souhaitez convertir au format JSON. ex. array (array ( 'id' => 1, 'value' => 'test'), array ( 'id' => 2, 'valeur' ??=> 'intelligente'))
Autres conseils
Je recommande d'utiliser
http://jmsyst.com/bundles/JMSSerializerBundle
$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);