16

我正在使用 Twitter API 并注意到一些有趣的事情——对于更新,它们需要 POST 方法,但需要查询字符串中的参数。(例如,请参阅此处的开发者控制台中的状态/更新调用。)

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

4

3 回答 3

13

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

     POST /map/route/45/waypoints?lat=35&long=74

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

于 2012-05-02T01:54:30.040 回答
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.

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

于 2012-05-02T06:59:47.663 回答
-2

WEB API 的参数是否在正文或查询中取决于您在 POST 中发送的 Content-Type 标头。

例如,如果是 Content-Type: application/json; charset=UTF-8 那么参数在正文中应为 json。如果是Content-Type:application/x-www-form-urlencoded;charset=UTF-8 那么参数应该在查询字符串中

于 2012-11-30T10:26:51.117 回答