首页 > 解决方案 > 检查输入数据是否匹配数据库记录的正确 RESTful 方法

问题描述

我有一个应用程序,它接受用户输入的个人详细信息(姓名、dob 等)并在数据库中查找匹配项。我不是在创建记录,也不是在编辑记录。

现在通常我会使用 GET,但 GET 不允许我使用正文,并且所有需要检查的数据都必须发送。我针对所有用户的输入运行数据库查询以找到匹配项。如果数据库返回匹配项,则找到匹配项,否则返回空数组且未找到匹配项。

那么你能推荐我可能使用的正确的 RESTful 方法(HTTP)吗?

谢谢

标签: rest

解决方案


由于POST操作负载的语义是由服务本身定义的,因此在其他操作不适合的任何情况下都应该使用它。POST因此,它不仅用于创建新资源,还用于触发某些计算和类似的东西。

然而,普遍的问题是,为什么需要这种方法?如果您担心在获取资源状态和请求更新之间覆盖其他客户端对资源所做的任何更改,即,您应该考虑使用RFC 7232中定义的条件请求,其中ETag为当前状态计算哈希或者Last-Modified取值并添加到响应头中。然后,客户端可以发送包含有效负载的请求以首先检查是否包含请求服务器仅在前提条件成立时应用更新的If-Match或标头。If-Unmodified-Since如果它失败了,服务器会告诉你一个412 Precondition Failed错误响应。


推荐阅读