Создадим набор REST API endpoint-ов для предоставления фукционала клиентской части
1. Пять endpoint-ов для CRUD операций с пользователями
2. Пять endpoint-ов для CRUD операций с твитами (будет вложены в путь пользователей)
3. Два endpoint-а для создания/удаления лайков (будет вложены в путь твитов пользователей)
4. Endpoint для чтения всех твитов от всех пользователей (получение всех твитов)
Добавим валидацию на методы создания/обновления с помощью joi
Добавим постраничную навигацию при получении всех твитов с возможностью выбрать лимит от 5 до 20 (10 по-умолчанию). Ответ должен быть в формате:
{
"tweets": [...],
"meta": {
"offset": 0,
"count": 54,
"limit": 10,
"pages": 6,
"page": 1
}
}
Добавим сортировку при получении всех твитов с возможностью выбрать поля и порядок сортировки. Допустимые поля - publishedOn (по-умолчанию), author.name. Допустимые порядки - desc (по-умолчанию), asc. Должна быть возможность сортировки сразу по двум полям. Возможный синтаксис - ...?order=author.name:asc|publishedon:desc. Не забудем добавить в поле meta информацию о сортировке
Добавим фильтрацию при получении всех твитов по полям author.email, publishedAfter и publishedBefore. Должна быть возможность указания нескольких фильтров. Не забудем добавить в поле meta информацию о фильтрах