如何设计RESTful搜索/过滤?
我目前正在设计和实现PHP中的RESTful API。但是,我没有成功实施我的初始设计。
GET /users # list of users
GET /user/1 # get user with id 1
POST /user # create new user
PUT /user/1 # modify user with id 1
DELETE /user/1 # delete user with id 1
到目前为止标准相当,对吗?
我的问题是第一个问题GET /users。我正在考虑在请求正文中发送参数来过滤列表。这是因为我希望能够在不获取超长URL的情况下指定复杂的过滤器,例如:
GET /users?parameter1=value1¶meter2=value2¶meter3=value3¶meter4=value4
相反,我希望有类似的东西:
GET /users
# Request body:
{
"parameter1": "value1",
"parameter2": "value2",
"parameter3": "value3",
"parameter4": "value4"
}
它更具可读性,为您提供设置复杂过滤器的绝佳机会。
无论如何,file_get_contents('php://input')没有返回请求的请求体GET。我也尝试过http_get_request_body(),但我正在使用的共享主机没有pecl_http。不确定它会有所帮助。
我发现了这个问题,并意识到GET可能不应该有一个请求体。这有点不确定,但他们建议不要这样做。
所以现在我不知道该怎么做。您如何设计RESTful搜索/过滤功能?
我想我可以使用POST,但这似乎不太RESTful。
月关宝盒
慕仙森
相关分类