О пользовательских ресурсах
на пути /users
вы всегда получите набор пользовательских ресурсов.
на пути /users/[user_id]
вы можете ожидать, что произойдет несколько вещей:
- вы должны получить одноэлементный ресурс, представляющий пользовательский ресурс с его идентификатором [user_id] или
- не найдено 404ответ если пользователя с идентификатором [user_id] не существует, или
- запрещенный 401, если вам не разрешен доступ к запрошенному пользовательскому ресурсу.
Каждый синглтон уникально идентифицируется своим путем и идентификатором, и вы используете их для поиска ресурса. Для синглтона нельзя использовать несколько путей.
Вы можете запросить путь /users
с параметрами запроса ( GET
Parameters). Это вернет коллекцию с пользователями, которые соответствуют запрошенным критериям. Возвращаемая коллекция должна содержать пользовательские ресурсы с указанием пути к ресурсам в ответе.
Параметры могут быть любым полем, присутствующим в ресурсах коллекции; firstName
, lastName
,id
Об электронной почте
Электронная почта может быть ресурсом или свойством / полем ресурса пользователя.
- Электронная почта как собственность пользователя:
Если поле является собственностью пользователя, ответ пользователя будет выглядеть примерно так:
{
id: 1,
firstName: 'John'
lastName: 'Doe'
email: 'john.doe@example.com'
...
}
Это означает , что не существует никаких специальных конечных точек для электронной почты, но теперь вы можете найти пользователя по его электронной почте, отправив следующий запрос:
/users?email=john.doe@example.com
. Что (при условии, что электронные письма уникальны для пользователей) вернет коллекцию с одним пользовательским элементом, который соответствует электронной почте.
- Электронная почта как ресурс:
Но если электронные письма от пользователей также являются ресурсами. Затем вы можете создать API, который /users/[user_id]/emails
возвращает набор адресов электронной почты для пользователя с идентификатором user_id
. /users/[user_id]/emails/[email_id]
возвращает адрес электронной почты пользователя с user_id и ['email_id']. Что вы используете в качестве идентификатора, зависит от вас, но я бы предпочел целое число. Вы можете удалить электронное письмо от пользователя, отправив DELETE
запрос по пути, который идентифицирует электронное письмо, которое вы хотите удалить. Так, например, DELETE
on /users/[user_id]/emails/[email_id]
удалит электронное письмо с email_id, которое принадлежит пользователю с user_id. Скорее всего, только этому пользователю разрешено выполнять эту операцию удаления. Остальные пользователи получат ответ 401.
Если у пользователя может быть только один адрес электронной почты, вы можете придерживаться его. /users/[user_id]/email
Это возвращает одноэлементный ресурс. Пользователь может обновить свой адрес электронной почты, PUT
указав адрес электронной почты на этом URL.