Bối cảnhCác phương pháp hay nhất để thêm siêu dữ liệu vào phản hồi JSON RESTful là gì?
Chúng tôi đang tạo một API khôi phục sẽ trả về các đối tượng dữ liệu dưới dạng JSON. Trong hầu hết các trường hợp, chỉ cần trả lại đối tượng dữ liệu, nhưng trong một số trường hợp, f.ex. phân trang hoặc xác thực, chúng tôi cần thêm một số siêu dữ liệu vào phản hồi.
gì chúng tôi có cho đến nay
Chúng tôi đã được bao bọc tất cả các phản ứng json như ví dụ sau:
{
"metadata" :{
"status": 200|500,
"msg": "Some message here",
"next": "http://api.domain.com/users/10/20"
...
},
"data" :{
"id": 1001,
"name": "Bob"
}
}
Ưu
- Chúng ta có thể thêm siêu dữ liệu hữu ích để đáp ứng
Nhược điểm
- Trong hầu hết các trường hợp chúng ta không cần lĩnh vực siêu dữ liệu, và nó cho biết thêm phức tạp sang định dạng json
- Vì nó không phải là một đối tượng dữ liệu nữa, nhưng giống như một phản ứng bao bọc , chúng tôi không thể sử dụng phản hồi ngay trong f.ex backbone.js mà không cần giải nén đối tượng dữ liệu.
Câu hỏi
thực hiện những điều tốt nhất để thêm siêu dữ liệu để đáp ứng json là gì?
CẬP NHẬT
Những gì tôi đã có cho đến nay từ câu trả lời dưới đây:
- Tháo
metadata.status
một sự trở lại các mã phản hồi http trong giao thức http thay (200, 500 ...) - Thêm thông báo lỗi vào nội dung của một đại diện http 500
- Để phân trang tôi tự nhiên có một số siêu dữ liệu nói về cấu trúc phân trang và dữ liệu lồng trong cấu trúc đó
- lượng nhỏ dữ liệu meta có thể được thêm vào tiêu đề http (X-một cái gì đó)
Bạn có biết rằng ví dụ của mình không phải là JSON không? – JeremyP
cảm ơn, cập nhật –
Bạn có thể đi vào chi tiết hơn về các trường hợp sử dụng tiềm năng của bạn và tại sao mã trạng thái HTTP và đặt tiêu đề phản hồi thích hợp sẽ không phù hợp? – Charlie