我希望我的 API 有一个仅验证请求。例如,如果我有一个 URL,例如:
http://api.somesite.com/users/12345
并且用户正在填写有关客户端的信息表单,我最终将对该资源进行 PATCH/PUT/POST。当用户填写表单时,我可能希望定期将他们部分完整的更新表示发送到服务器,以便我可以显示他们输入的实时验证(例如,“那个用户名已经被占用了”,“那个密码是太短”)。
没有标准的 HTTP 方法或头文件似乎允许在同一资源上执行此行为。看来我的选择是:
最佳答案
一些选项
1)使用自定义标题
2)在查询字符串中放一些东西,表明只验证
3) 使用 Action URl 例如\IndividualClient\123\actions\Validate\Invoke {section 19 here http://restfulobjects.files.wordpress.com/2011/11/restful-objects-spec-052.pdf }
4) 分层 URL,例如\IndividualClient\123\Validation
从这里 post我发现这个建议
Do use POST whenever you have to do something that feels RPC-like Do use GET for things like calculations, unless your input is large, in which case use POST
With regard to your specific question, POST should be used for #4 and #5. These operations fall >under the "RPC-like" guideline above. For #5, remember that POST does not necessarily have to >use Content-Type: application/x-www-form-urlencoded. This could just as easily be a JSON or CSV >payload.
这是我正在考虑的:
这是一个资源的添加:
用户/验证
邮政
请求:用户资源
响应:验证结果
响应代码 200、400、404、500
这是资源的更新
用户/204/验证
邮政
请求:用户资源,
响应:验证结果
响应代码 200、400、404、500
关于web-services - RESTful API : What METHOD/HEADER combo to use for validation-only,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645133/