Nếu cats/123
đại diện cho một nguồn tài nguyên sau đó suy nghĩ về nó theo cách này: tài nguyên có thể có nhiều bang (ăn uống, đi bộ, ngủ, nhảy, pissing, ...). Khi bạn đang thiết kế một API bằng cách sử dụng kiểu kiến trúc REST, bạn muốn cho phép ứng dụng khách tạo các yêu cầu cho phép đối với tài nguyên sẽ thay đổi trạng thái của nó.
Trong ngữ cảnh cats/123
, bạn có thể thực hiện việc này thông qua một loạt các yêu cầu POST sẽ làm cho trạng thái tài nguyên thay đổi. Lợi dụng khả năng hypermedia trong REST, bạn có thể tạo một quá trình như các yêu cầu và phản hồi được hiển thị bên dưới. Lưu ý rằng các liên kết cho phép thay đổi như một phản hồi cho POST. Ngoài ra, ứng dụng khách sẽ được mã hóa cho các thuộc tính có trong mảng Liên kết chứ không phải là các URI thực có trong các thuộc tính Href.
Yêu cầu:
GET cats/123
đáp ứng:
{
"Color" : "black",
"Age" : "2",
"Links":[
{
"Food":"kibbles",
"Method":"POST",
"Href":"http://cats/123",
"Title":"Feed the cat"
},
{
"Scare":"yell real loud",
"Method":"POST",
"Href":"http://cats/123",
"Title":"Scare the cat"
}]
}
Yêu cầu:
POST cats/123
{
"Food":"kibbles"
}
đáp ứng:
{
"Color" : "black",
"Age" : "2",
"Tummy" : "full"
"Links":[
{
"Sleep":"lap",
"Method":"POST",
"Href":"http://cats/123",
"Title":"Pet the cat"
},
{
"Scare":"yell real loud",
"Method":"POST",
"Href":"http://cats/123",
"Title":"Scare the cat"
}]
}
Nguồn
2012-04-23 14:07:59
+1. Cảm ơn. Nhưng tôi nghĩ chúng ta nên sử dụng PUT thay vì POST để cập nhật tài nguyên? Tôi đọc rằng POST nên được sử dụng để tạo ra? – SiN
Thật không may, các cuộc thảo luận ("đối số") về phong cách kiến trúc REST xoay quanh việc hiểu các đặc tả HTTP và các định nghĩa của nó. Tóm lại, [HTTP spec] (http://www.ietf.org/rfc/rfc2616.txt) nói rằng phương pháp PUT là cách gửi toàn bộ * biểu diễn tài nguyên * (một thực thể như được cập nhật bởi máy khách) tới máy chủ để nó có thể thay thế đại diện hiện tại của tài nguyên giả sử khách hàng có phiên bản mới nhất. Trong câu hỏi, "hành động" của bạn đang yêu cầu chuyển đổi trạng thái thay vì thay thế bán buôn tài nguyên bằng phiên bản cập nhật. –
{Rời khỏi không gian :)} Ngoài ra, POST là một cách được chấp nhận gây ra một biểu diễn tài nguyên để chuyển đổi từ trạng thái này sang trạng thái khác. –