Kami sedang mengembangkan API Istirahat untuk situs web eCommerce yang akan dikonsumsi oleh aplikasi seluler.
Di halaman beranda aplikasi kita perlu memanggil beberapa sumber seperti Slider, Merek Top, Produk Terlaris, Produk Tren dll.
Dua opsi untuk melakukan panggilan API:
Panggilan Tunggal:
www.example.com/api/GetAllInHome
Banyak Panggilan:
www.example.com/api/GetSliders
www.example.com/api/GetTopBrands
www.example.com/api/GetBestSellingProducts
www.example.com/api/GetTrendingProducts
Yang merupakan pendekatan terbaik untuk desain api sisanya - panggilan tunggal atau ganda, jelaskan pro dan kontra?
Mana yang akan membutuhkan lebih banyak waktu untuk menanggapi permintaan?
sumber
TL; DR: Di samping semua pertimbangan aplikasi lain, melakukan satu panggilan akan lebih cepat daripada melakukan beberapa panggilan. Menjalankan panggilan secara tidak sinkron dapat mengurangi waktu keseluruhan yang diperlukan untuk menyelesaikan operasi yang diberikan dari perspektif pengguna Anda (yang mungkin merupakan semua yang Anda butuhkan), tetapi secara agregat, waktu yang dibutuhkan masih lebih lama untuk beberapa panggilan.
Namun dalam kasus Anda, saya tidak yakin itu cerita lengkapnya.
API REST adalah istilah yang agak ambigu, karena berbagai interpretasi dari makalah yang membuat ide populer. Namun, bahkan oleh penafsiran paling liberal tentang apa yang merupakan API REST, apa yang Anda miliki tidak begitu cocok.
Prinsip intinya adalah bahwa Anda memiliki sumber daya di mana Anda ingin melakukan suatu tindakan. URI mengidentifikasi sumber daya yang Anda minati, dan Anda biasanya akan menggunakan kata kerja HTTP untuk menunjukkan apa yang ingin Anda lakukan terhadap sumber daya itu.
Dalam kasus spesifik Anda, semua metode Anda memiliki kata 'get' dalam nama mereka. Anda harus mengubah kata kerja yang digunakan dalam permintaan HTTP untuk menunjukkan bahwa Anda ingin 'mendapatkan' sumber daya yang tersedia di lokasi itu.
Skema URI Anda harus mewakili hierarki logis dari sumber daya yang ingin Anda sediakan bagi pengguna API Anda, jadi dalam kasus Anda saya akan mempertimbangkan menggunakan sesuatu seperti
/api/products?category=sliders
untuk menyaring koleksi produk Anda. Ini berarti bahwa ketika klien ingin mendapatkan semua produk Anda, mereka dapat dengan mudah menghilangkan string kueri.sumber
url
untuk API tetapi meminta sumber daya yang berbeda dibuat menggunakan String Kueri? , periksa juga ini .keep-alive
arent akan menghapus ini sepenuhnya.questions
Anda melihat URI adalah/questions
, ketika Anda mengklik pada salah satu tag favorit Anda, URI adalah/questions/tagged/<tagname>