REST API dapat memiliki argumen di beberapa tempat:
- Dalam isi permintaan - Sebagai bagian dari badan json, atau jenis MIME lainnya
- Dalam string kueri - mis
/api/resource?p1=v1&p2=v2
- Sebagai bagian dari jalur URL - mis
/api/resource/v1/v2
Apa praktik terbaik dan pertimbangan memilih antara 1 dan 2 di atas?
2 vs 3 dibahas di sini .
Jawaban:
Biasanya badan konten digunakan untuk data yang akan diunggah / diunduh ke / dari server dan parameter kueri digunakan untuk menentukan data persis yang diminta. Misalnya saat Anda mengupload file, Anda menentukan nama, jenis mime, dll. Di body tetapi ketika Anda mengambil daftar file, Anda dapat menggunakan parameter kueri untuk memfilter daftar berdasarkan beberapa properti file. Secara umum, parameter kueri adalah properti kueri, bukan datanya.
Tentu saja ini bukan aturan yang ketat - Anda dapat menerapkannya dengan cara apa pun yang menurut Anda lebih sesuai / sesuai untuk Anda.
Anda mungkin juga ingin memeriksa artikel wikipedia tentang string kueri , terutama dua paragraf pertama.
sumber
Saya akan menganggap Anda berbicara tentang permintaan POST / PUT. Secara semantik badan permintaan harus berisi data yang Anda posting atau tambal.
String kueri, sebagai bagian dari URL (URI), ada di sana untuk mengidentifikasi sumber daya mana yang Anda posting atau tambal.
Anda meminta praktik terbaik, semantik berikut adalah milik saya. Tentu saja menggunakan aturan praktis Anda harus bekerja, terutama jika kerangka web Anda menggunakan abstrak ini menjadi parameter .
Yang paling Anda ketahui:
sumber
Berikut ini adalah aturan praktis saya ...
Kapan menggunakan tubuh:
Kapan menggunakan string kueri:
curl
application/octet-stream
Perhatikan bahwa Anda dapat mencampur dan mencocokkan - letakkan yang umum, yang harus dapat di-debug dalam string kueri, dan letakkan sisanya di json.
sumber