Saya mencari cara yang benar untuk melewatkan beberapa nilai untuk nama parameter yang sama dalam permintaan GET.
Saya telah melihat URL seperti ini:
http://server/action?id=a&id=b
Dan saya telah melihat URL seperti ini:
http://server/action?id=a,b
Pemahaman saya adalah yang pertama benar, tetapi saya tidak dapat menemukan referensi untuk ini. Saya telah melihat spec http tetapi tidak bisa melihat apa-apa tentang bagaimana bagian 'permintaan' dari URL harus dibuat.
Saya tidak ingin jawaban yang mengatakan "keduanya baik-baik saja" - jika saya membangun layanan web, saya ingin tahu mana dari metode ini yang standar sehingga orang yang menggunakan layanan web saya tahu cara menyampaikan beberapa parameter untuk nama yang sama.
Jadi, dapatkah seseorang mengarahkan saya ke sumber referensi resmi untuk mengonfirmasi opsi mana yang benar?
id=a&id=b
sebagai boolean AND, danid=a,b
sebagai boolean OR.?id=5&id=3
. PHP hanya akan membaca dalam satu nilai untuk id di sini. Jika saya ingat dengan benar, itu harus terlihat seperti ini agar dapat bekerja dengan PHP:?id[]=5&id[]=3
since you are developing the APIs, I suggest you to do what is the easiest for you, since the caller of the API will not have much trouble creating the query string.
id=a,b
membuat asumsi bahwa koma,
adalah pembatas yang valid. Tetapi nilai parameter Anda dapat berisi a,
. Maka klien perlu melarikan diri,
dalam nilai parameter kueri. Tapi Anda bisa memutuskan;
lebih baik. Ini berarti klien dan server harus berbagi pembatas resmi untuk API Anda.id=a&id=b
tidak memiliki masalah ini meskipun itu membuat url lebih lamaSaya menyarankan melihat bagaimana browser menangani formulir secara default. Sebagai contoh, lihat elemen form
<select multiple>
dan bagaimana ia menangani beberapa nilai dari contoh ini di w3schools.Untuk penggunaan PHP:
Contoh langsung dari atas di w3schools.com
Dari atas jika Anda mengklik "saab, opel" dan klik kirim, itu akan menghasilkan hasil cars = saab & cars = opel . Kemudian tergantung pada server back-end, parameter mobil harus tampil sebagai array yang dapat Anda proses lebih lanjut.
Semoga ini bisa membantu siapa pun yang mencari cara yang lebih 'standar' dalam menangani masalah ini.
sumber