适用于JSON验证REST端点的名称和http方法

时间:2017-05-31 09:50:01

标签: json rest validation http methods

我想实现一个REST端点,其通用目的是验证JSON格式的复杂实体。

那么,第一个问题是应该使用哪种HTTP方法?我们不能将JSON放入GET方法体内。 POST和PUT是在对数据库进行一些更改时应该使用的方法,但验证不会进行任何更改。

第二个问题是什么资源名称适合这种端点?

2 个答案:

答案 0 :(得分:2)

POST和PUT之间的主要区别在于,当POST不是时,PUT是幂等的。

所以,问题是,如果你两次运行相同的验证请求,你会期望得到不同的结果吗?我想不,所以PUT可能是最好的选择。

我想要有效地使用RESTful,其中一个约束是端点应该定位您想要处理的资源,HTTP方法指示您要对其执行的操作。所以在你的情况下,我个人会选择:

PUT /api/v42/validation

正如@RomanVottner所提议的那样,您也可以通过将每个请求视为"新的验证报告生成来解决这一需求,在这种情况下,POST会更合适:

POST /api/v42/validations

无论如何,你需要面对其中一个需要稍微调整REST的边缘情况,因为这需要在CRUD世界之外。

答案 1 :(得分:0)

我的一般规则是..当你需要一个完整的JSON主体时,请使用POST。

有一个像/ validateJSON之类的帖子方法,GET不起作用,PUT没有意义,所以请继续POST。

请参阅:Which REST operation (GET, PUT, or POST) for validating information?

干杯。