Данный репозиторий является результатом тестового задания по реализации CRUD операций.
https://coinhater.herokuapp.com/ - deploy
Настройки подключения к базе данных хранятся в файле:
server/db/config/config.json
Запуск серверной части:
cd server && npm i && npm start
Стартовые сиды (запускать до добавления исполнителей в базу через API):
cd server && npm run seed
Запуск клиентской части:
cd client && npm i && npm start
Запросы осуществляются по домену (https://coinhater.herokuapp.com)
GET /api/artists - список всех исполнителей. Также доступна фильтрация с помощью query запроса. Доступные ключи:
- artistPart - поиск исполнителя по части его имени
- selectedDateArtist : 'YYYY-MM-DD' - поиск исполнителя по его дате добавления в систему
- limitPaginationArtist - количество отображаемых исполнителей
- pagePaginationArtist - порядковый номер группы отображаемых исполнителей в списке разбитом по limitPaginationArtist
GET /api/artists/:id - информация об исполнителе с заданным id.
POST /api/artists - добавление нового исполнителя в базу. Тело запроса:
- name : string - Имя добавляемого исполнителя
Данные валидируются на стороне сервера и запрещают добавлять в базу данных исполнителя "монеточка"
PUT /api/artists/:id - редактирование информации об исполнителе с заданным id. Тело запроса:
- name : string - Новое имя для данного исполнителя
Данные валидируются на стороне сервера и запрещают добавлять в базу данных исполнителя "монеточка"
DELETE /api/artists/:id - удаление исполнителя с заданным id и всех его композиций из базы данных.
GET /api/songs - список всех композиций. Также доступна фильтрация с помощью query запроса. Доступные ключи:
- songPart - поиск композиции по части наименования
- selectedDateSong : 'YYYY-MM-DD' - поиск композиции по дате добавления её в систему
- limitPaginationSong - количество отображаемых композиций
- pagePaginationSong - порядковый номер группы отображаемых композиций в списке разбитом по limitPaginationSong
GET /api/songs/:id - информация о композиции с заданным id.
POST /api/songs - добавление новой композиции в базу. Тело запроса:
- name : string - Наименование добавляемой композиции
- artistId : number - id исполнителя
PUT /api/songs/:id - редактирование информации о композиции с заданным id. Тело запроса:
- name : string - Новое наименование данной композиции
- artistId : number - id исполнителя (если необходимо сменить автора композиции)
DELETE /api/songs/:id - удаление композиции с заданным id из базы данных.