PHP 7, MySQL
По требованию реализовано на PHP без фреймворков. ООП не использовалось из-за недостатка времени.
Также был использован RedBeanPHP ORM.
Все запросы по http://domain.com/api
ER-модель БД представлена ниже.
Скрипт бд представлен тут
- Клонировать репозиторий
git clone git@github.com:Filipponik/scid-test.git
-
Создать базу данных
-
Применить скрипт на созданной базе
-
Настроить подключение к базе данных в конфиге
$db_host = 'HOST';
$db_name = 'DBNAME';
$db_conn_string = 'mysql:host='.$db_host.';dbname='.$db_name;
$db_user = 'USER';
$db_pass = 'PASSWORD';
- Перезапустить сервер, например
systemctl restart httpd
Создать JSON REST API для справочника журналов, с возможностью добавления, обновления, чтение и удаления (CRUD).
Сущность «Журнал» состоит из полей: • Название. (Обязательное поле)
• Короткое описание. (Необязательное поле)
• Картинка. (jpg или png, не больше 2 Мб, должна сохраняться в отдельную папку и иметь уникальное имя файла)
• Авторы (Обязательное поле, может быть несколько авторов у одного журнала, должна быть возможность выбирать из списка авторов, который создается отдельно).
• Дата выпуска журнала.
Сущность «Автор» состоит из полей:
• Фамилия (Обязательное поле, не короче 3 символов)
• Имя (Обязательное, не пустое)
• Отчество (Необязательное)
Для запросов на получение данных клиент должен использовать GET-запросы. Для отправки данных на сохранение клиент должен использовать POST-запросы.
API должен иметь в себе методы:
POST /author/add
POST /author/update
POST /author/delete
GET /author/list - здесь опционально клиент может передать параметры «page» - номер страницы и «perPage» - количество записей на страницу.
POST /magazine/add
POST /magazine/update
POST /magazine/delete
GET /magazine/list - по параметрам page,perPage по аналогии с описанным list выше.
В теле POST-запроса клиент должен передавать данные в виде JSON-строки, в ответ по всем методам также получат в теле ответа JSON-строку.