Zacząłem budować aplikację internetową przy użyciu Joomla Framework . Składa się z prostej strony internetowej, która będzie wyświetlana w ramce iFrame, wraz z interfejsem API, który będzie używany do aktualizacji treści za pomocą AJAX.
Śledziłem Pierwsze kroki z kompozytorem i Joomla! artykuł i uruchom aplikację Framework . Dostosowałem domyślne wyjście HTML do pracy z moją ramką iFrame i zacząłem od API. Użyłem Newsa jako szablonu i stworzyłem kontroler, model, tabelę i widok dla mojego API, które wszystko działa świetnie. Następnie utworzyłem bardzo prosty szablon Twig, który zwraca reprezentację JSON moich danych w następujący sposób:
{{ items|json_encode|raw }}
Jak dotąd tak dobrze, ale otrzymuję ten nagłówek, który spowoduje problemy podczas używania AJAX z jQuery:
Content-Type:text/html; charset=utf-8
Myślałem, że to prosty przypadek dodania tego, ale bez względu na to, gdzie go umieszczę, nie zmienia to zwracanego nagłówka:
$this->app->setHeader('Content-Type', 'application/json', true);
Wiem, że setHeader działa tak, jakbym zmienił nazwę, widzę, że nowy nagłówek został zwrócony, więc zakładam, że zostanie on nadpisany później w trakcie wykonywania.
Więc moje pytanie brzmi: czy zamierzam to zrobić we właściwy sposób? Mój widok rozszerza DefaultHtmlView, co wydaje się błędne, czy powinienem utworzyć DefaultJsonView? Jak ustawić poprawny typ zawartości lub czy istnieje lepsze podejście do zwracania JSON?
Będziemy wdzięczni za wszelkie porady dotyczące najlepszego sposobu wykorzystania Joomla Framework do budowy API.