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

时间:2012-05-02 01:32:20

标签: http rest twitter http-post

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

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

3 个答案:

答案 0 :(得分:12)

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

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

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

答案 1 :(得分: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概念不同。

答案 2 :(得分:-2)

如果WEB API的参数在主体或查询中,则取决于您在POST中发送的Content-Type标头。

如果它是forinstance是Content-Type:application / json; charset = UTF-8然后参数在身体中被期望为json。如果是Content-Type:application / x-www-form-urlencoded; charset = UTF-8然后在查询字符串中预期参数