【发布时间】:2019-01-15 13:32:50
【问题描述】:
我有一套资源:
[{
"name": "process-1",
"id": "1",
"state": "active"
},...
]
我通过GET service-name/version/processes?state=running&sort=by_date得到它们
我需要更新集合:更新现有进程中的状态并获取新的正在运行的进程。我应该如何根据 RESTful 最佳实践来设计这个 API?
按照下面的方式来设计是不是很好的解决方案:
POST service-name/version/processes?action=refresh
body: {ids: ["1", "2", "3", ...]}
或者我应该将刷新实现为外部资源操作?
更新:
我不想在服务器端更新对象,我只想在客户端刷新它们
【问题讨论】:
-
How to Update a REST Resource Collection 的可能重复项,另请参阅REST: Updating Multiple Resources With One Request - Is it standard or to be avoided?。简而言之,RESTful API 不应包含动词,
action=refresh将符合动词的条件。用于更新集合的推荐 HTTP 动词是PATCH,不过我肯定会阅读其他帖子的答案。 -
@James 好吧,我不想更新任何东西,我只想在客户端刷新对象
-
在您的original 问题中没有提到,“我需要更新集合:更新现有进程中的状态并获取新的运行进程” 和 “我应该如何设计这个 API” 会避开这是一个服务器端问题。
标签: rest api-design