it-swarm-id.com

Bagaimana cara membangun API yang tenang dengan Joomla

Saya telah membangun ekstensi Joomla sejak v1 tetapi saya harus segera mengambil API live yang telah saya buat dan telah digunakan untuk sementara waktu. Saat ini saya menggunakan Joomla 2.5 dan memiliki plugin tertulis untuk sistem ini:

https://github.com/techjoomla/com_api

Sebelum ditayangkan saya ingin bukti di masa depan sistem sebanyak mungkin. Komponen API ini baru saja mulai ditingkatkan untuk bekerja dengan Joomla v3 sehingga saat ini mencegah situs dari ditingkatkan. Saya juga berpikir memisahkan API publik dan portal pengguna masuk akal karena tidak ada manfaat dari itu menjadi ekstensi terintegrasi karena API akan digunakan oleh aplikasi seluler.

Rencana saat ini adalah membangun kembali API pada subdomain yang memungkinkan kami untuk meningkatkan portal pengguna. Saya telah membaca tentang kerangka kerja Joomla baru yang terlihat menarik. Apakah ini cocok untuk membangun API TETAP untuk aplikasi seluler kami? Jika demikian, apakah mereka tips untuk memulai? Saya pernah membaca bahwa FoF dapat digunakan untuk membangun API, apakah ini pilihan yang baik? Saya melihat proyek Kickstarter bermaksud untuk membangun API semacam ini, apakah itu opsi potensial? Haruskah saya menghapus situs 2.5 saat ini untuk subdomain sehingga hanya menjalankan API?

Setiap saran tentang pendekatan terbaik untuk membangun RESTful API berbasis Joomla untuk interaksi seluler akan sangat dihargai.

11
Joe P

Dari pengalaman saya:

Tentang kerangka kerja Joomla

Saya mencoba membangun API RESTful sederhana untuk otentikasi terintegrasi berdasarkan kerangka kerja Joomla. Ini cukup kompleks, sangat berbeda dari API Joomla saat ini. Juga, kode sumber saat ini tidak dapat disalin-salin, dan perpustakaan dapat mengembalikan hasil yang tidak diharapkan (dieksekusi di lingkungan yang berbeda). Saya akan menunggu sampai kode lebih banyak tersedia, dan memiliki adopsi yang lebih besar.

Tentang kerangka kerja FOF

Saat ini saya hanya mengembangkan dengan FOF. Cukup praktis, banyak RAD, konfigurasi otomatis, dll; dan kode ini kompatibel dengan J2.5/J3.

Untuk RESTful API, Anda bisa mengambil todo-fof-example, dan menambahkan controller dengan API. Contoh:

public function getIndexStatus()
{
    // CSRF prevention
    if ($this->csrfProtection)
    {
        $this->_csrfProtection();
    }

    $message['status'] = true;
    $message['error_message'] = 'Status Ok';

    $message = json_encode($message);
    echo $message;
    flush();

    JFactory::getApplication()->close();

}

Anda juga dapat memanfaatkan tampilan json otomatis E.g. tampilan penelusuran (default.php) dapat menghasilkan output json (hanya menambahkan default_json.php dan echo json_encode ...)

8
Anibal

com_api jelas merupakan cara yang baik untuk membangun REST layanan untuk situs Anda jika ekstensi itu sendiri tidak didasarkan pada FOF/RAD. Namun berhati-hatilah dengan beberapa gotcha jika Anda berencana untuk membuat turunan Joomla terpisah hanya untuk API

  • Hal-hal khusus domain (Misalnya: Jika Anda mendukung pendaftaran pengguna, maka email sambutan akan menyertakan tautan ke subdomain API). Ini dapat dikurangi dengan bermain-main dengan variabel server PHP.
  • Demikian pula jalur gambar dll harus benar, kecuali jika Anda menggunakan S3

Selain itu saya yakin tidak boleh ada masalah, karena itu akan terus dikembangkan sampai ada cara Joomla de-facto untuk membuat API.

Penafian: Saya adalah pengelola https://github.com/techjoomla/com_api

6
Ashwin Date

Dua sen saya:

Untuk seorang pelanggan saya perlu mengakses konten situs joomla-nya dari aplikasi telepon pintar. Konten ditempatkan di com_content jadi awalnya saya menggunakan feed obRSS. Kemudian saya menemukan jBackend di JED dan mencobanya. Ini tersedia di sini http://www.selfget.com/products/jbackend.html Kode ini tampak sangat bersih dan mendukung permintaan RESTful dan tanggapan JSON. Dokumentasi online terbatas tetapi cukup jelas untuk teknisi. Sayangnya saat ini hanya mendukung com_user dan com_content tetapi dalam kasus saya ini baik-baik saja. Sekarang saya harus menggunakannya untuk pelanggan lain yang menggunakan K2 CCK. Saya mencoba membuat plugin khusus untuk mengakses artikel dan kategori K2, tetapi setidaknya saya akan menyimpan seluruh kode manajemen permintaan. Saya mengirim email ke pengembang dan dia bilang dia sedang mengerjakan modul tambahan seperti K2 dan forum Kunena juga, itu ekstensi yang sangat menjanjikan.

1
WizKid

Situs berikut tampaknya menjadi sumber yang bagus untuk panduan tentang cara membangun API JSON yang tenang:

http://jsonapi.org/

Untuk apa nilainya, saya juga meluncurkan produk API untuk Joomla 3.4.x disebut cAPI http://getcapi.org .

Pembeda utama di sini adalah bahwa saya mempertaruhkan kerangka kerja routing saya pada Slim micro-framework. Ini memungkinkan saya untuk memasukkan kerangka kerja yang sudah dicoba dan diuji, kuat ke dalam contoh aplikasi Joomla. Saya juga telah membuat arsitektur plugin untuk rute layanan, membuka pintu untuk pengaya dan keamanan layanan web.

Anda dapat menemukan informasi tambahan dari posting lain, di sini:

https://stackoverflow.com/questions/26340885/rest-api-for-joomla-3-0/32706378#32706378

Beri tahu saya jika Anda memiliki pertanyaan.

1
Steve Tsiopanos