Pregunta

Estoy tratando de configurar un ejemplo JSON usando Symfony2.
He creado un paquete de prueba, una entidad de prueba ("mensaje"), configurar el ORM, etc.
los Mensaje (tabla) tiene las siguientes columnas: ID, título, texto
Estoy tratando de exponer una ruta */mydomain/mensaje que exponga una interfaz JSON a la tabla de mensajes (una lista pequeña)

La primera metodología que probé fue:

Crear una clase MessageController que use Symfony\Component\HttpFoundation\Response y tiene una función como esta:

public function testAction() {  
    $response = new Response(json_encode(**code_req_here**));  
    return $response;  
}

y establecer una ruta como así:

test:  
    pattern: /test  
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}  
    requirements: { _format: (xml|json), _method: GET }  
  1. ¿Es esta una metodología correcta?
  2. ¿Qué pongo en el code_req_here?

La segunda metodología que probé fue usando el FOS/Restbundle pero no logré completar la guía correctamente según tengo entendido, así que

  1. Proporcione una pequeña guía sobre cómo hacer (solo) esto con FOS/Restbundle
¿Fue útil?

Solución

¿Es esta una metodología correcta?

Sí, me gusta, pero modificaría la regla de enrutamiento un poco así:

test:
    pattern: /test.{_format}
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}
    requirements: { _format: (xml|json), _method: GET }

¿Qué pongo en el código_req_here?

Pon la matriz que desea convertir en formato JSON. ex. Array (array ('id' => 1, 'valor' => 'test'), array ('id' => 2, 'valor' => 'inteligente'))

Otros consejos

Recomiendo usar

http://jmsyst.com/bundles/jmsserializerbundle

$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top