【问题标题】:RESTful service. Different response and request schemaRESTful 服务。不同的响应和请求模式
【发布时间】:2021-05-14 07:11:48
【问题描述】:

我对 REST 的理解是,资源端点应该公开相​​同的模式,而与 HTTP VERB 无关。例如。相同的 JSON 模式用于:

PUT /foo/
GET /foo/{id}
POST /foo/{id}

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

我应该为每个端点使用单独的架构吗? 如果客户端发送了 created_on 值,则什么都不做并忽略它? 如果客户端尝试发送created_on,则返回错误?

【问题讨论】:

    标签: rest design-patterns restful-url


    【解决方案1】:

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

    这不是完全正确的。我们通常期望 GET 和 PUT 使用相似的表示。 POST 可以使用相同的表示,但通常不使用。

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

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

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

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

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

    就是这样。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多