RESTful 服务。不同的响应和请求模式

时间:2021-05-14 07:11:48

标签: rest design-patterns restful-url

我对 REST 的理解是,资源端点应该公开相​​同的架构,而不管 HTTP 动词如何。例如。相同的 JSON 模式用于:

async

如何处理只能由服务器填充的字段。例如。 PUT /foo/ GET /foo/{id} POST /foo/{id} created_oncreated_by

我应该为每个端点使用单独的架构吗? 如果 id 值是由客户端发送的,那么什么都不做并忽略它? 如果客户端尝试发送 created_on?

,则返回错误

1 个答案:

答案 0 :(得分:1)

<块引用>

我对 REST 的理解是资源端点应该公开相​​同的架构,而不管 HTTP VERB。

完全不对。我们通常希望 GET 和 PUT 使用类似的表示。 POST 可以使用相同的表示,但通常不会。

例如:在网络上我们获取 HTML 文档,但我们 POST 键/值对 (application/x-www-form-urlencoded)。

<块引用>

如何处理只能由服务器填充的字段。例如。 created_on、created_by、id。

我认为,将它们视为架构中的可选字段是常见的答案。

另外,请记住,服务器不受请求语义的约束。 PUT 的意思是“让资源看起来像请求的主体”,但服务器对资源进行自己的更改是完全合理的。

<块引用>

如果客户端发送了 created_on 值,则什么都不做并忽略它?

就这样。

您需要小心一点,不要暗示您已按原样接受所提供的表示,请参阅RFC 7231

相关问题