【问题标题】:RESTful API - refresh specific resources operationRESTful API - 刷新特定资源操作
【发布时间】: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


【解决方案1】:

如果这是一个严格的客户端问题,则不需要任何新的 HTTP 端点。您只需再次执行相同的GET 请求即可。

【讨论】:

    猜你喜欢
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多