Saya sedang mengerjakan serangkaian layanan web untuk klien seluler, dan persyaratannya meminta id perangkat unik untuk disertakan dengan semua permintaan, untuk disimpan dalam permintaan tertentu, dan digunakan untuk memfilter hasil pada yang lain.
Sebuah saran dibuat agar dimasukkan ke header HTTP khusus karena akan disertakan dengan semua permintaan, jadi saya mulai bertanya-tanya kriteria apa yang mungkin digunakan untuk menentukan apakah sepotong data tertentu termasuk dalam header atau bersama dengan data lainnya di badan permintaan.
Apakah ada kriteria seperti itu?
http
http-request
Mike Partridge
sumber
sumber
Jawaban:
Ketika informasi itu penting, Anda harus memasukkannya ke dalam tubuh.
Mengapa?
sumber
Sementara garis agak kabur, bagi saya aturan praktis adalah: data yang logika bisnis Anda bekerja harus ada di tubuh, metadata bisa / harus dimasukkan ke dalam header.
Cara lain untuk melihatnya adalah: data yang hanya muncul dalam jenis permintaan tertentu harus ada di badan sementara data yang ditangani secara konsisten di seluruh aplikasi harus dimasukkan ke header.
Namun sudut pandang lain adalah: dapatkah Anda membayangkan bahwa sepotong data ditangani secara global, misalnya oleh router / firewall daripada oleh aplikasi Anda? Jika ya, itu mungkin harus di header daripada di tubuh.
Beberapa contoh penerapan aturan ini adalah:
Kembali ke pertanyaan Anda tentang ID perangkat unik: jika digunakan secara konsisten di mana-mana, mis. Hanya untuk masuk, itu bisa dimasukkan ke dalam header. Tetapi jika digunakan untuk menyaring permintaan dengan cara yang berbeda tergantung pada titik akhir, lebih baik berada di tubuh. Tentu saja jika Anda memiliki kedua kasus penggunaan, mungkin lebih baik tetap menggunakan hanya satu cara untuk melewatinya (mungkin tajuk) daripada memaksa pengguna API untuk meletakkan data yang sama di dua tempat, memberi Anda dilema jika memungkinkan input yang tidak konsisten atau menerapkan semacam validasi.
sumber
Konten permintaan klien; yang tidak akan diubah di beberapa permintaan ke server yang sama akan menjadi bagian dari HEADER misalnya kredensial, yang lain yang sering diubah per permintaan akan menjadi bagian dari BODY.
ATAU
properti pesan / isi tubuh akan masuk ke header. mis. jenis pengkodean, panjang konten, tipe konten.
DAN
Dalam kasus Anda seperti parameter filter harus ditambahkan sebagai permintaan / permintaan params di url.
/mobiles?type=MOTO&colour=black
Dalam layanan yang tenang, url itu sendiri akan merujuk ke suatu objek
/conferences/{conference_id}
-> merujuk konferensi tertentusumber