仅使用GET和POST方法的RESTful服务

RESTful服务目前使用GET,POST,PUT,PATCH和DELETE实现,或者至少使用4个。 (通常不使用PATCH方法)。

是否有可能仅使用GET和POST来实现RESTful API,使得POST可以像POST,PUT或DELETE一样工作,具体取决于在url或headers中传递的参数,或者正如该文章提到的那样执行语义url:/ users / delete /用户/更新

我正在寻找这样的东西,发现这篇文章,但它不是很完整,有点旧。 https://www.infoq.com/news/2010/06/get-post-alone-restful

我知道在某些Web框架(如Django)中,它们只允许POST和GET方法,但我认为这是出于兼容性原因与以前版本的框架一起发生的。

一方面Fielding在谈论宁静的服务时,唯一的限制是关于语义,但是使用上面的例子我们有一个sematic使用。 POST或PUT或DELETE之间没有歧义。


是的,这是可能的,甚至经常在某些特定用例的实践中完成 - 例如,因为您只能在HTML表单中使用GET和POST,或者需要具有“PATCH”但不受客户端支持你需要合作。

如果您使用Express,则有方法覆盖模块:

  • https://github.com/expressjs/method-override
  • 这可以让你有一个HTML表单,如:

    <form method="POST" action="/resource?_method=DELETE">
      <button type="submit">Delete resource</button>
    </form>
    

    那会删除资源而不是发布它。

    方法覆盖通常使用上面的“_method”之类的查询参数或者可以设置为“DELETE”或“PATCH”或任何您想要的“X-HTTP-Method-Override”之类的特殊头文件来完成。

    链接地址: http://www.djcxy.com/p/71305.html

    上一篇: RESTful service using only GET and POST methods

    下一篇: What is exactly a RESTful API?