Ok, đây là sự thật. StackOverflow được triển khai theo kiểu REST. Khi bạn truy cập một câu hỏi cụ thể/$ id/URL bạn có thể xem câu hỏi. Nội dung được trả về trong HTML vì đó là những gì trình duyệt hiểu.REST và nhiều định dạng dữ liệu
Tôi phải phát triển dịch vụ REST của riêng mình. Thực tế là tôi phải trả về nhiều định dạng cho cùng một thông tin. Ví dụ, mặc định có thể là HTML, nhưng tôi cũng có thể trả về một XML hoặc một JSON.
Câu hỏi là: phong cách được đề xuất để đạt được điều này là gì? Ba lựa chọn (thêm từ gợi ý hữu ích của bạn)
- tùy chọn trong URL (ví dụ http://example.com/questions/12345/?format=json)
- giao diện khác nhau (ví dụ: đối với dữ liệu json bạn có http://example.com/questions/1234/json/ hoặc http://example.com/json/questions/12345/, cho dữ liệu xml bạn có http://example.com/questions/1234/xml/ vv ... bạn sẽ có được điểm) tiêu đề
- http Chấp nhận: application/json
Tương tự là cho PUT) hoạt động POST (. Nếu tôi muốn gửi dữ liệu ở các định dạng khác nhau, tôi cần thông báo cho người nhận định dạng mà tôi đang cung cấp, vì vậy tình huống tương tự (và câu hỏi) được giữ.
Cảm ơn!
Sửa: đề nghị bổ sung như sau
4) Chỉ định một địa chỉ URL thích hợp cho mỗi định dạng ví dụ http://example.com/questions/12345.json. Điều này có vẻ tốt đẹp, nhưng điều này có nghĩa là, để nhất quán, chúng ta cũng nên có http://example.com/questions/12345.html? âm thanh như vậy năm 1995 ... :)
PS: Tôi ghét đánh dấu đưa một thứ tự tùy ý vào danh sách. Nếu tôi muốn bắt đầu với 4, tôi sẽ có thể làm điều đó.
Câu hỏi tương tự: http://stackoverflow.com/questions/381568/rest-content-type-should-it-be-based-on-extension-or-accept-header –
Có, gần như trùng lặp, nhưng là nó đứng, nó ít trực tiếp hơn tôi. Hy vọng rằng, câu hỏi này sẽ mang lại nhiều lợi ích hơn cho các googlers. –
Các lược đồ đặt tên URI và các URI lồng nhau hoàn toàn không liên quan gì đến REST. Nếu bạn có thể dựa vào việc sửa đổi các phần của URI để truy cập các tài nguyên có thể dự đoán được, rất có thể đó chỉ là RPC, chứ không phải REST. – aehlke