相关疑难解决方法(0)

RESTful服务中部分更新的最佳实践

我正在为客户管理系统编写RESTful服务,我正在尝试找到部分更新记录的最佳实践.例如,我希望调用者能够使用GET请求读取完整记录.但是为了更新它,只允许记录上的某些操作,比如将状态从ENABLED更改为DISABLED.(我有比这更复杂的场景)

出于安全原因,我不希望调用者仅使用更新的字段提交整个记录(这也感觉有点过分).

是否有推荐的构建URI的方法?在阅读REST书籍时,RPC样式调用似乎不受欢迎.

如果以下调用返回ID为123的客户的完整客户记录

GET /customer/123
<customer>
    {lots of attributes}
    <status>ENABLED</status>
    {even more attributes}
</customer>
Run Code Online (Sandbox Code Playgroud)

我该如何更新状态?

POST /customer/123/status
<status>DISABLED</status>

POST /customer/123/changeStatus
DISABLED

...
Run Code Online (Sandbox Code Playgroud)

更新:增加问题.如何将"业务逻辑调用"纳入REST API?这是否有商定的方式?并非所有方法都是CRUD本质上.有些更复杂,比如' sendEmailToCustomer(123) ',' mergeCustomers(123,456) ',' countCustomers() '

POST /customer/123?cmd=sendEmail

POST /cmd/sendEmail?customerId=123

GET /customer/count 
Run Code Online (Sandbox Code Playgroud)

谢谢弗兰克

rest

200
推荐指数
7
解决办法
9万
查看次数

不允许部分PUT背后的理由是什么?

为什么HTTP PUT请求必须包含"整体"状态的表示,而不能只是部分?

我知道这是PUT的现有定义 - 这个问题是关于为什么以这种方式定义的原因.

即:

通过阻止部分PUT获得了什么?

为什么阻止幂等部分更新被视为可接受的损失?

rest http

17
推荐指数
1
解决办法
3342
查看次数

标签 统计

rest ×2

http ×1