因此,通常会发出 HTTP PUT 请求来替换给定 URI 处当前存储的资源。例如,有一本书存储在https://example.org/book/1,其中的数据可以用 JSON 表示,如下所示,
$ curl --request GET https://example.org/book/1
{
"title": "Stackoverflow Compilation Book 1",
"year": 2019
}
假设有人想要修复该year
字段,因为这本虚构书籍是去年(2018 年)出版的,他/她必须通过 HTTP PUT 请求发送完整的更新书籍信息。
$ curl --request PUT
--header "Content-Type: application/json"
--data '{"title": "Stackoverflow Compilation Book 1", "year": 2018}'
注意year
属性的变化。
考虑到 HTTP PUT 请求本质上是一种替换操作,也可以将 URI 所代表的书替换为其他内容。例如,
$ curl --request PUT
--header "Content-Type: application/json"
--data '{"title": "Some random book that nobody publishes", "year": 2019}'
附加的数据可以是任何格式(通常也在请求头中指定Content-Type
,如上图),只要支持,通常由Accept
响应头上报(表示应用程序愿意处理什么样的数据类型) . 应用程序代码将处理进一步的验证以确定提交的数据是否有效。