He empezado a construir una aplicación web usando Joomla Framework . Consiste en una página web simple que se mostrará en un iFrame junto con una API que se utilizará para actualizar el contenido con AJAX.
Seguí los Primeros pasos con Composer y Joomla! artículo y tener la aplicación Framework en funcionamiento. Personalicé la salida HTML predeterminada para que funcione en mi iFrame y comencé en la API. Utilicé News como plantilla y creé un controlador, modelo, tabla y vista para mi API, que funciona muy bien. Luego creé una plantilla Twig muy simple que devuelve una representación JSON de mis datos de esta manera:
{{ items|json_encode|raw }}
Hasta ahora todo bien, pero me devuelve este encabezado que causará problemas al usar AJAX con jQuery:
Content-Type:text/html; charset=utf-8
Pensé que sería un simple caso de agregar esto, pero no importa dónde lo coloque, no cambia el encabezado que se devuelve:
$this->app->setHeader('Content-Type', 'application/json', true);
Sé que setHeader funciona como si cambiara el nombre, veo que se devuelve el nuevo encabezado, así que supongo que se sobrescribirá más adelante en la ejecución.
Entonces mi pregunta es, ¿voy a hacer esto de la manera correcta? Mi vista extiende DefaultHtmlView que se siente mal, ¿debería crear un DefaultJsonView? ¿Cómo puedo configurar el tipo de contenido correcto o hay un mejor enfoque para devolver JSON?
Se agradece cualquier consejo que se pueda dar sobre la mejor manera de usar Joomla Framework para construir una API.
exit
, debería evitar que se ejecute algo más y simplemente generarlo tal como está actualmente. Sin embargo, su respuesta parece mucho mejor.