API在查询字符串中需要POST参数吗?

Yar*_*rin 16 twitter rest http http-post

我正在玩Twitter API并注意到一些有趣的东西 - 对于更新,它们需要POST方法,但期望查询字符串中的参数.(在他们的开发者控制台的状态/更新调用例如见这里.)

显然这在技术上是可行的,但为什么有人这样做呢?POST参数是否属于正文?

Dar*_*ler 13

任何一个选项都同样有效.我最喜欢在POST的URL中使用参数的示例是在地图上设置航点的应用程序.例如

     POST /map/route/45/waypoints?lat=35&long=74
Run Code Online (Sandbox Code Playgroud)

在这种情况下,参数在URI中作为位置的标识符更有意义,而不仅仅是在正文中传递给泛型资源的参数.

  • @Yarin几年前,我向HTTP工作组邮件列表发布了一个相关问题,我得到的答案是一个空主体的POST完全有效.http://lists.w3.org/Archives/Public/ietf-http-wg/2010JulSep/0272.html (6认同)

sha*_*lic 6

在REST架构中,GET和POST只是动词,它告诉要么检索或创建/更新资源.URI定义资源的标识.

例:

POST /student?name=Tom&age=12 >> It will create a new student with name Tom and age 12.
POST /student/10?name=Tom&age=12 >> It will update student with id 20 with name Tom and age 12.
Run Code Online (Sandbox Code Playgroud)

没有规则要将数据绑定到正文有效负载或URI.这与在POST中发送HTML表单数据的WEB 1.0概念不同.

  • 如果您正在进行更新,则应使用`PUT`而不是`POST`来完成 (2认同)