我应该使用什么REST动作进行验证?

时间:2015-10-01 19:38:40

标签: rest url-parameters

我对REST有一个设计问题。我需要将validate方法公开为rest资源。让我们说它看起来像这样

public ValidatedResult validate(ObjectToBeValidated object)

ObjectToBeValidated是一个包含实际Object的类,还包含有关验证的一些参数。

当我将其设计为Restful资源时,我会使用哪种操作?根据我的理解,GET是最适合这种情况的动作。如果是这样,我如何将ObjectTobeValidated作为对象传递而不是作为URL参数传递?我回避了URL参数,因为ObjectToBeValidated可能包含很多属性,最后会有一个像下面这样感觉太长的网址

http://localhost/rest/validate?prop1=somevalu&prop2=somevalue&prop3=something&prop11=somevalu&prop22=somevalue&prop33=something

任何帮助将不胜感激

由于 凯

1 个答案:

答案 0 :(得分:1)

HTTP标准允许您使用POST方法。没有必要产生副作用。

  

POST方法执行的操作可能不会产生资源   可以通过URI识别。在这种情况下,200(OK)或204   (No Content)是适当的响应状态,具体取决于是否   或不响应包括描述结果的实体。

在你的情况下,如果你想遵循Tim建议的名词 - 动词方法,你可以做这样的事情:

POST /api/my/object/validator

请注意,通过REST,邮件必须是自描述的,因此您需要供应商MIME类型,或者需要添加元数据,例如RDF描述此链接的作用以及允许的参数。否则,我们不是在谈论REST,只是一个常规的webapp。