현재 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하지는 않습니다.