У меня есть конечная точка в API, который я сейчас пишу, который предназначен для возврата отфильтрованного списка друзей пользователя Facebook. Пользователи аутентифицируются в Facebook в мобильном приложении, вызывая эту конечную точку, поэтому access_token
хранится в мобильном приложении, а не в базе данных API.GET против POST, когда требуются параметры
Endpoint: /users/:id/friends
Parameters: access_token (the requested user's Facebook access_token)
Return: A list of the user's Facebook friends who have the app installed
Действие не изменяет никаких данных; он просто возвращает отфильтрованный список. Однако, поскольку требуется дополнительный параметр (access_token
), это означает, что запрос GET не будет соответствовать структуре маршрутизации API, так как другие маршруты GET не добавили к ним дополнительный параметр.
Какой из следующих HTTP-запросов подходит для этого действия?
GET /users/:id/friends/:access_token
GET /users/:id/friends?access_token=<token>
POST /users/:id/friends (passing 'access_token' as a POST param)
Это было мое чувство. Использование GET более точно соответствует HTTP. Я собираюсь пойти с вашим предложением добавить «access_token» как параметр GET, а не часть URL-адреса. –