web-services - RESTful API : What METHOD/HEADER combo to use for validation-only

标签 web-services api rest

我希望我的 API 有一个仅验证请求。例如,如果我有一个 URL,例如:

http://api.somesite.com/users/12345

并且用户正在填写有关客户端的信息表单,我最终将对该资源进行 PATCH/PUT/POST。当用户填写表单时,我可能希望定期将他们部分完整的更新表示发送到服务器,以便我可以显示他们输入的实时验证(例如,“那个用户名已经被占用了”,“那个密码是太短”)。

没有标准的 HTTP 方法或头文件似乎允许在同一资源上执行此行为。看来我的选择是:
  • 创建一个新的从属资源进行验证
  • 使用自定义 header (x-somesite-validation-only)和 PUT 指示我想验证但不保存
  • 最佳答案

    一些选项

    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/

    相关文章:

    javascript - 数据源查询回调问题(调用顺序、改变全局变量的能力)

    asp.net - 控制哪些 WebMethod 在 WebService 中对外公开

    node.js - 当 graphQL 的查询从 mongodb 返回空数据时,你应该检查什么?

    java - Spring RestTemplate 抛出 InvalidMediaTypeException

    java - Spring Restful API,是否有像路由器一样使用方法来获取其他方法的端点或URL?

    java - jersey ws 2.0 @suspended AsyncResponse,它有什么作用?

    web-services - 尝试从中生成 stub (WebService 客户端)时,wsdl 抛出错误

    javascript - 使用 API 或 XML 记录从 Plivo WebSDK 进行的调用

    api - drupal 重定向 API

    java - 如何设置 Eureka 命名服务而不是 RestTemplate?