【发布时间】:2020-06-11 14:44:42
【问题描述】:
我认为这是一个经典而典型的问题,但我没有找到答案。
据我所知,POST 方法用于将数据发送到服务器,消息正文中带有请求参数,以使其安全。而 GET 方法是通过 URL 中的参数来检索数据。 但是我不明白的是,同一个api怎么可能通过改变方法有不同的行为。
这是一个例子。我用的是SoapUI 5.5.0,这个是api的链接:https://reqres.in/api/users/1
当我使用 GET 方法时,我得到了这个:
{
"data": {
"id": 1,
"email": "george.bluth@reqres.in",
"first_name": "George",
"last_name": "Bluth",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg"
}
}
通过仅将方法更改为 POST,我得到了这个:
{
"id": "244",
"createdAt": "2020-02-27T14:30:32.100Z"
}
(id和日期每次都会改变) 如此链接https://reqres.in/ 中所述,它正在创建一个实例,我们可以添加参数..
但是,任何人都可以解释在技术上如何在同一个 URL 上使用不同的方法产生不同的行为。
【问题讨论】:
-
如果您熟悉MVC模式,我可以很容易地解释它。
POST https://reqres.in/api/users是一位控制器;GET https://reqres.in/api/users是另一个控制器。它们是两个不同的控制器,尽管它们共享相同的地址。通常,GET https://reqres.in/api/users用于索引(所有记录),GET https://reqres.in/api/users/<id>用于显示一条记录。两者都是两个不同的控制器。
标签: rest web-services post get http-method