Tôi đã chuyển đổi qua lại ~ 5 lần rồi. Điểm cuối REST này /api/tags/
sẽ được sử dụng nội bộ (không có ứng dụng khách bên thứ 3), tôi là người duy nhất làm việc với nó.
Tôi quyết định giữa hai đại diện này:
Bằng phẳng
{
"types":[
{
"id":1,
"text":"Utility"
},
{
"id":7,
"text":"Lease Terms"
},
],
"tags":[
{
"id":8,
"text":"Water",
"type":1
},
{
"id":9,
"text":"Electricity",
"type":1
},
{
"id":5,
"text":"Minimum 12 month lease",
"type":7
},
{
"id":17,
"text":"lease negotiable/flexible",
"type":7
},
]
}
- Nó hơi mô-đun. Có thể thêm một lớp trên cùng như "quốc gia" mà không phá vỡ tính tương thích.
Lồng nhau
{
"1":{
"text":"Utility",
"tags":{
"8":{
"text":"Water"
},
"9":{
"text":"Electricity"
},
}
},
"2":{
"text":"Lease Terms",
"tags":{
"5":{
"text":"Minimum 12 month lease"
},
"17":{
"text":"lease negotiable/flexible"
},
}
},
}
- Nó đã ở định dạng có thể sử dụng. Đừng cần lặp qua dữ liệu trước khi sử dụng nó.
- Tiết kiệm một số băng thông. Ngay cả sau gzip, cái này nhỏ hơn một chút.
Cái nào nên dùng, và tại sao? Nếu đây là vấn đề sở thích cá nhân, đại diện nào các nhà phát triển có kinh nghiệm sẽ thích và tại sao?
Is this a matter of personal preference?
. Tôi nghĩ vậy. Yêu cầu> nhu cầu> sở thích