J'ai commencé à créer une application Web à l'aide de Joomla Framework . Il se compose d'une simple page Web qui sera affichée dans un iFrame avec une API qui sera utilisée pour mettre à jour le contenu avec AJAX.
J'ai suivi les premiers pas avec Composer et Joomla! article et avoir l' application Framework opérationnelle. J'ai personnalisé la sortie HTML par défaut pour qu'elle fonctionne avec mon iFrame et j'ai démarré l'API. J'ai utilisé News comme modèle et créé un contrôleur, un modèle, une table et une vue pour mon API, qui fonctionnent tous très bien. J'ai ensuite créé un modèle Twig très simple qui renvoie une représentation JSON de mes données comme ceci:
{{ items|json_encode|raw }}
Jusqu'ici tout va bien mais je reçois cet en-tête retourné qui causera des problèmes lors de l'utilisation d'AJAX avec jQuery:
Content-Type:text/html; charset=utf-8
Je pensais que ce serait un cas simple d'ajouter cela, mais peu importe où je le mets, cela ne change pas l'en-tête qui est retourné:
$this->app->setHeader('Content-Type', 'application/json', true);
Je sais que setHeader fonctionne comme si je modifiais le nom, je vois le nouvel en-tête renvoyé, je suppose donc qu'il est écrasé plus tard dans l'exécution.
Donc ma question est, est-ce que je vais y aller dans le bon sens? Ma vue étend DefaultHtmlView qui semble incorrect, dois-je créer un DefaultJsonView? Comment puis-je définir le type de contenu correct ou existe-t-il une meilleure approche pour renvoyer JSON?
Toute aide qui pourrait être donnée sur la meilleure façon d'utiliser Joomla Framework pour créer une API sera grandement appréciée.
exit
cela devrait empêcher que quelque chose de plus s'exécute et le restituer tel qu'il est actuellement. Votre réponse semble cependant bien meilleure.