Ketika mendesain Layanan Web RESTful haruskah API dirancang untuk bekerja ID untuk Strings untuk nilai-nilai yang diteruskan bolak-balik antara server?
Berikut ini sebuah contoh: Katakanlah saya memiliki sumber daya Karyawan, yang memiliki status dan atribut gender. Dalam Status database dan Jenis Kelamin serta tabel terpisah dan dengan demikian memisahkan objek Domain, masing-masing dengan pengidentifikasi sendiri.
Katakanlah permintaan klien / karyawan / 1. Ada server mungkin mengembalikan sesuatu seperti ini ....
Kasus 1:
{
"id": 1,
"firstName": "Jane",
"lastName": "Doe",
"active": true,
"gender": {
"id": 1,
"gender": "FEMALE"
},
"status": {
"id": 3,
"status": "FULL_TIME"
}
}
Kasus 2:
{
"id": 1,
"firstName": "Jane",
"lastName": "Doe",
"active": true,
"gender": "FEMALE",
"status": "FULL_TIME"
}
Kasus 3:
{
"id": 1,
"firstName": "Jane",
"lastName": "Doe",
"active": true,
"genderId": 1,
"statusId": 3
}
Kasus 3 tampaknya masuk akal karena klien tidak tahu apa itu genderId 1 kecuali jika berbalik dan membuat panggilan lain ke server untuk mendapatkan data itu.
Namun sekarang, katakanlah klien memperbarui pengguna melalui:
PUT /employee/1
Haruskah Payload permintaan menggunakan id atau string? Either way, back-end harus mencari mereka untuk memastikan mereka valid, tetapi lebih baik untuk bekerja dengan ID lebih dari Strings.