Esempio Symfony2 JSON
Domanda
Sto cercando di impostare un esempio JSON utilizzando Symfony2.
Ho creato un pacchetto di prova, un ente di prova ( "Messaggio"), ha istituito il orm ecc
Il Messaggio (tabella) ha le seguenti colonne: id, titolo, testo
Sto cercando di esporre un itinerario * / mydomain / messaggio che esporrebbe un'interfaccia JSON per tabella dei messaggi (un piccolo elenco)
Il primo metodo che ho provato era:
Creare una classe MessageController che usi Symfony\Component\HttpFoundation\Response
ed ha una funzione come questa:
public function testAction() {
$response = new Response(json_encode(**code_req_here**));
return $response;
}
e impostare un percorso in questo modo:
test:
pattern: /test
defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}
requirements: { _format: (xml|json), _method: GET }
- è presente una metodologia corretta?
- che cosa ho messo sul
code_req_here
?
la seconda metodologia che ho provato era usando il FOS / RestBundle ma non è riuscito a completare correttamente la guida a quanto mi risulta, quindi
- si prega di fornire una piccola guida su come fare (solo) questo con FOS / RestBundle
Soluzione
è presente una metodologia corretta?
Si mi piace, ma vorrei modificare la regola di instradamento un po 'come questo:
test:
pattern: /test.{_format}
defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}
requirements: { _format: (xml|json), _method: GET }
che cosa ho messo sul code_req_here?
Mettete la matrice che si desidera convertire in formato JSON. ex. array (array (=> 1, 'value' => 'test') 'id', array ( 'id' => 2, 'value' => 'intelligente'))
Altri suggerimenti
Mi consiglia di utilizzare
http://jmsyst.com/bundles/JMSSerializerBundle
$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);