Про користувацькі ресурси
на шляху /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
вказавши адресу електронної пошти за цією адресою.