我有一个应用程序,该应用程序接收用户输入的个人详细信息(姓名,身份证等),并在数据库中查找匹配项。我既没有创建记录,也没有编辑记录。
现在通常我会使用GET,但是GET不允许我使用body,因此必须发送所有需要检查的数据。我针对所有用户输入运行数据库查询以找到匹配项。如果数据库返回匹配项,则找到一个,否则返回一个空数组,找不到匹配项。
那么您能推荐我可能用于此的正确的RESTful方法(HTTP)吗?
谢谢
答案 0 :(得分:2)
由于POST
操作的有效负载的语义是由服务本身定义的,因此在其他操作不适合的任何情况下都应使用它。因此POST
不仅用于创建新资源,还用于触发某些计算和类似的工作。
但是,一般的问题是,为什么需要这种方法?如果您担心在获取资源状态和请求更新之间会覆盖其他客户端对资源所做的任何更改,即,您应考虑使用RFC 7232中定义的条件请求,其中{{1}为当前状态计算}哈希,或者获取ETag
值并将其添加到响应头中。然后,客户端可以发送包括有效负载的请求,以首先检查包含Last-Modified
或If-Match
头的请求,仅在前提条件成立的情况下,请求服务器应用更新。如果失败,服务器将通过If-Unmodified-Since
错误响应告诉您。