Мне нужен URI в моем REST API для извлечения текущего зарегистрированного пользователя. Обычно я использую GET
на ресурсе с идентификатором, но клиент не знает идентификатор пользователя.Проектирование URI для текущего зарегистрированного пользователя в приложениях REST
Я нашел следующие решения:
По имени пользователя
Это решение использует имя пользователя вместо идентификатора пользователя.
Пример:
- Bitbucket REST API:
GET /user/{userSlug}
- Bitbucket REST API:
С собственным ресурсом
Это решение имеет один ресурс для пользователей и один дополнительный ресурс для зарегистрированного пользователя.
Примеры:
JIRA REST API:
GET /myself
GitHub REST API:
GET /user
Stack Exchange REST API:
GET /me
С символической ссылкой
Это решение имеет символическую ссылку для ID пользователя.
Пример:
- Confluence REST API:
GET /user/current
- Confluence REST API:
С фильтром
Это решение использует фильтр для имени пользователя.
Пример:
- JIRA REST API:
GET /user?username={username}
- JIRA REST API:
Какой из них наиболее RESTful? Каковы плюсы и минусы?
@dur Я бы отправил имя пользователя в качестве параметра * пути * вместо параметра запроса. Как я уже упоминал в этом [ответе] (http://stackoverflow.com/a/36421654/1426227), пути пути следует использовать при идентификации * конкретного объекта *. Используйте параметры запроса для фильтрации коллекции ресурсов, например, под управлением поискового вызова и сортировки. –