RESTful 服务。不同的响应和请求模式
RESTful service. Different response and request schema
我对 REST 的理解是资源端点应该公开相同的模式,而不管 HTTP VERB。例如。相同的 JSON 架构用于:
PUT /foo/
GET /foo/{id}
POST /foo/{id}
如何处理只应由服务器填充的字段。例如。 created_on
, created_by
, id
.
我应该为每个端点使用单独的架构吗?
如果 created_on
值是由客户端发送的,什么都不做并忽略它?
Return 如果客户端尝试发送错误 created_on
?
My understanding of REST is that a resource endpoint should expose the same schema, irrespective of the HTTP VERB.
这不完全。我们通常期望 GET 和 PUT 使用类似的表示。 POST 可以 使用相同的表示,但通常不会。
例如:在网络上我们获取 HTML 文档,但是我们 POST key/value 对 (application/x-www-form-urlencoded).
How do I handle fields that should only be populated by the server. E.g. created_on, created_by, id.
我认为将它们视为模式中的可选字段是常见的答案。
此外,请记住服务器不受请求语义的限制。 PUT 的意思是“使资源看起来像请求的主体”,但服务器对资源进行自己的更改是完全合理的。
Do nothing and ignore the created_on value if it's sent by the client?
就是这样。
您需要小心一点,不要暗示您已按原样接受所提供的表示,请参阅 RFC 7231。
我对 REST 的理解是资源端点应该公开相同的模式,而不管 HTTP VERB。例如。相同的 JSON 架构用于:
PUT /foo/
GET /foo/{id}
POST /foo/{id}
如何处理只应由服务器填充的字段。例如。 created_on
, created_by
, id
.
我应该为每个端点使用单独的架构吗?
如果 created_on
值是由客户端发送的,什么都不做并忽略它?
Return 如果客户端尝试发送错误 created_on
?
My understanding of REST is that a resource endpoint should expose the same schema, irrespective of the HTTP VERB.
这不完全。我们通常期望 GET 和 PUT 使用类似的表示。 POST 可以 使用相同的表示,但通常不会。
例如:在网络上我们获取 HTML 文档,但是我们 POST key/value 对 (application/x-www-form-urlencoded).
How do I handle fields that should only be populated by the server. E.g. created_on, created_by, id.
我认为将它们视为模式中的可选字段是常见的答案。
此外,请记住服务器不受请求语义的限制。 PUT 的意思是“使资源看起来像请求的主体”,但服务器对资源进行自己的更改是完全合理的。
Do nothing and ignore the created_on value if it's sent by the client?
就是这样。
您需要小心一点,不要暗示您已按原样接受所提供的表示,请参阅 RFC 7231。