<分区>
我想实现一个 REST 端点,其通用目的是验证 JSON 格式的复杂实体。
那么,第一个问题是应该使用哪种 HTTP 方法?我们不能将 JSON 放入 GET 方法的正文中。 POST 和 PUT 是对数据库进行某些更改但验证未进行任何更改时应使用的方法。
第二个问题是什么资源名称适合这样的端点?
<分区>
我想实现一个 REST 端点,其通用目的是验证 JSON 格式的复杂实体。
那么,第一个问题是应该使用哪种 HTTP 方法?我们不能将 JSON 放入 GET 方法的正文中。 POST 和 PUT 是对数据库进行某些更改但验证未进行任何更改时应使用的方法。
第二个问题是什么资源名称适合这样的端点?
最佳答案
POST 和 PUT 之间的主要区别是 PUT 是幂等的,而 POST 不是。
那么,问题是,如果您两次运行相同的验证请求,您会期望得到不同的结果吗?我想不会,所以 PUT 可能是最佳选择。
如果您想成为高效的 RESTful,约束之一是端点应以您要处理的资源为目标,HTTP 方法指示您要对其执行的操作。因此,就您而言,我个人会选择:
PUT /api/v42/validation
正如@RomanVottner 所建议的那样,您还可以通过将每个请求视为“新的验证报告生成”来解决这一需求,在这种情况下 POST 会更合适:
POST /api/v42/validations
无论如何,您正面临这些边缘情况之一,REST 需要稍微调整一下,因为这种需求不在 CRUD 世界之内。
关于json - JSON 验证 REST 端点的正确名称和 http 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44281412/