Ho iniziato a creare un'applicazione Web usando Joomla Framework . Consiste in una semplice pagina Web che verrà visualizzata in un iFrame insieme a un'API che verrà utilizzata per aggiornare il contenuto con AJAX.
Ho seguito la guida introduttiva a Composer e Joomla! articolo e avere l' App Framework attiva e funzionante. Ho personalizzato l'output HTML predefinito in modo che funzioni per il mio iFrame e ho iniziato l'API. Ho usato News come modello e ho creato un controller, un modello, una tabella e una vista per la mia API che funziona alla grande. Ho quindi creato un modello Twig molto semplice che restituisce una rappresentazione JSON dei miei dati in questo modo:
{{ items|json_encode|raw }}
Fin qui tutto bene, ma ho restituito questa intestazione che causerà problemi quando si utilizza AJAX con jQuery:
Content-Type:text/html; charset=utf-8
Ho pensato che sarebbe stato un semplice caso di aggiungere questo, ma non importa dove l'ho messo, non cambia l'intestazione che viene restituita:
$this->app->setHeader('Content-Type', 'application/json', true);
So che setHeader funziona come se cambiassi il nome, vedo la nuova intestazione restituita, quindi presumo che verrà sovrascritto più avanti nell'esecuzione.
Quindi la mia domanda è: sto andando nel modo giusto? La mia vista estende DefaultHtmlView che sembra sbagliato, dovrei creare un DefaultJsonView? Come posso impostare il Content-Type corretto o esiste un approccio migliore per la restituzione di JSON?
Qualsiasi aiuto di consulenza che può essere dato sul modo migliore di utilizzare Joomla Framework per costruire un'API sarà molto apprezzato.