Saya sedang mengerjakan proyek aplikasi iOS baru, di sisi seluler. Beberapa perubahan arsitektur terjadi dan ternyata kita harus bergantung pada API pribadi yang dibuat khusus yang akan digunakan oleh aplikasi yang sedang kita bangun dan juga oleh klien lain seperti situs web.
API yang dirancang mengikuti gaya Istirahat dari operasi URI berbasis sumber daya dan CRUD yang dipetakan ke kata kerja HTTP. hal-hal seperti:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
Masalahnya adalah bahwa gaya ini sering mengarah pada kebutuhan klien seluler untuk melakukan banyak permintaan untuk memuat layar aplikasi tunggal atau mengelola tindakan UI pengguna tunggal. Ini mengarah ke aplikasi berada dalam mode pemuatan selama 8 detik hingga memiliki semua yang dibutuhkan. Aplikasi lambat dan tidak responsif.
Klien seluler memiliki batasan serius dalam hal konektivitas dan idealnya, kita harus mengikuti aturan semacam itu:
1 layar == 1 panggilan API
1 simpan == 1 panggilan API.
Ada banyak situasi di mana ini menempatkan Anda pada jalur tabrakan dengan prinsip-prinsip desain REST, misalnya:
- katakanlah aplikasi Anda telah offline selama sehari dan Anda perlu menyinkronkan dengan empat tabel dari database back-end dan Anda perlu panggilan seperti
www.example.com/sync_everything?since=2015-07-24
- katakanlah ada layar di mana pengguna dapat mengedit banyak objeknya, misalnya mencentang tugas dalam daftar todo-nya. harus ada cara untuk mengedit semua catatan tugas dalam satu panggilan API batch tunggal daripada satu panggilan API per edit.
- katakanlah ada layar yang mencampur informasi dari tabel db ORDER, SALESMEN dan PRODUCT, saya harus mendapatkan data itu dalam satu panggilan, bukan tiga.
risikonya adalah kita mungkin berakhir dengan API yang paling tenang dan ada juga aplikasi seluler tidak responsif yang paling tidak berguna yang ada.
Masalahnya adalah saya hanya seorang kontraktor baru di sana dan yang saya butuhkan adalah sesuatu yang membantu saya membuat poin-poin itu, beberapa artikel dari sumber-sumber yang dihormati atau sesuatu seperti itu. Pemain besar yang berkompromi dengan gaya REST untuk klien seluler mereka (misalnya: dengan menggunakan titik akhir API agregat komposit).
Atau solusi apa pun untuk masalah umum ini. Terima kasih!