Khi thiết kế một dịch vụ web RESTful, API có nên được thiết kế để hoạt động ID cho Chuỗi cho các giá trị được truyền qua lại giữa máy chủ không?
Dưới đây là một ví dụ: Giả sử tôi có tài nguyên Nhân viên, có thuộc tính giới tính và trạng thái. Trong cơ sở dữ liệu Trạng thái và Giới tính và các bảng riêng biệt và do đó tách biệt đối tượng Miền, mỗi đối tượng có mã định danh riêng.
Giả sử khách hàng yêu cầu / nhân viên / 1. Có máy chủ có thể trả lại một cái gì đó như thế này ....
Trường hợp 1:
{
"id": 1,
"firstName": "Jane",
"lastName": "Doe",
"active": true,
"gender": {
"id": 1,
"gender": "FEMALE"
},
"status": {
"id": 3,
"status": "FULL_TIME"
}
}
Trường hợp 2:
{
"id": 1,
"firstName": "Jane",
"lastName": "Doe",
"active": true,
"gender": "FEMALE",
"status": "FULL_TIME"
}
Trường hợp 3:
{
"id": 1,
"firstName": "Jane",
"lastName": "Doe",
"active": true,
"genderId": 1,
"statusId": 3
}
Trường hợp 3 dường như có ý nghĩa tối thiểu vì khách hàng không biết giới tính 1 là gì trừ khi nó quay lại và thực hiện một cuộc gọi khác đến máy chủ để lấy dữ liệu đó.
Tuy nhiên, bây giờ hãy nói rằng khách hàng đang cập nhật người dùng thông qua:
PUT /employee/1
Yêu cầu Payload nên sử dụng id hoặc chuỗi? Dù bằng cách nào, back-end phải tìm kiếm chúng để đảm bảo chúng hợp lệ, nhưng sẽ tốt hơn khi làm việc với ID trên String.