Я знаю, что это некрасиво, но я думаю, что это самый ОТЛИЧНЫЙ способ сделать это, и его должно быть легко разобрать на стороне сервера :)

тоящее время я разрабатываю и внедряю RESTful API в PHP. Тем не менее, мне не удалось реализовать мой первоначальный дизайн.

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&parameter2=value2&parameter3=value3&parameter4=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, но это не кажется очень приятным.

Ответы на вопрос(1)

Ваш ответ на вопрос