Saya sudah mulai membangun aplikasi web menggunakan Kerangka Joomla . Ini terdiri dari halaman web sederhana yang akan ditampilkan dalam iFrame bersama dengan API yang akan digunakan untuk memperbarui konten dengan AJAX.
Saya mengikuti Memulai dengan Komposer dan Joomla! artikel dan memiliki Aplikasi Kerangka dan berjalan. Saya telah mengubahsuaikan output HTML default agar berfungsi untuk iFrame saya dan telah memulai API. Saya menggunakan Berita sebagai templat dan membuat pengontrol, model, tabel, dan tampilan untuk API saya yang semuanya berfungsi dengan baik. Saya kemudian membuat templat ranting yang sangat sederhana yang mengembalikan representasi JSON dari data saya seperti ini:
{{ items|json_encode|raw }}
Sejauh ini bagus tapi saya mendapatkan header ini kembali yang akan menyebabkan masalah saat menggunakan AJAX dengan jQuery:
Content-Type:text/html; charset=utf-8
Saya pikir ini akan menjadi kasus sederhana untuk menambahkan ini tetapi di mana pun saya meletakkannya, itu tidak mengubah header yang dikembalikan:
$this->app->setHeader('Content-Type', 'application/json', true);
Saya tahu bahwa setHeader berfungsi seolah-olah saya mengubah nama, saya melihat header baru kembali jadi saya berasumsi bahwa itu sedang ditimpa nanti dalam eksekusi.
Jadi pertanyaan saya adalah, apakah saya akan melakukan ini dengan cara yang benar? Tampilan saya memperluas DefaultHtmlView yang terasa salah, haruskah saya membuat DefaultJsonView? Bagaimana saya bisa menetapkan Tipe Konten yang benar atau apakah ada pendekatan yang lebih baik untuk mengembalikan JSON?
Setiap bantuan saran yang dapat diberikan tentang cara terbaik untuk menggunakan Kerangka Joomla untuk membangun API akan sangat dihargai.