如何定义布尔 API RESTful?

Sar*_*n M 4 rest api-design http

我必须定义一个 API 来回答是否可以创建具有给定 ID 的资源,例如

我(调用者)可以使用 id=resource1 创建此资源吗?

可能的反应是

  • 401 - 调用者未通过身份验证
  • 403 - 调用者已通过身份验证但无权执行此检查
  • 200 - 是的,您可以使用 id=resource1 创建资源
  • ...

现在我的问题是

  1. 如何为 API 建模?会,GET /resources/resource1是一个不错的选择吗?

  2. 哪些 HTTP 代码适用于响应,例如:(a) 此资源 ID 已被占用,(b) 您无权创建此特定 ID(但只有少数其他 ID),(c) 您可以创建此 ID。

Cha*_*429 5

github 中的一个例子可能对你有帮助。

用于检查用户是否关注另一个用户的 api:

GET /user/following/:username

交易信息在github的api文档中给出

对于您的问题1,我认为您可以这样实现:

GET /resource/existence/:resource_id

对于question2,你也可以看看github的客户端错误


小智 1

尝试使用POST创建资源会更好吗?并让您的实现处理来自那里的响应?在这种情况下,您的回应可能是:

a) 409:冲突
b) 401:未经授权
c) 200:正常

如果这是不可能的,那么我猜你来自GET 的有效负载响应可以包含结果。就像这样简单的事情:

true:您可以创建资源
false:您无法创建资源