Сервис REST API на PHP с использованием MySQL, Docker, реализацией JWT токена и демонстрационным интерфейсом.
POST
/register
- регистрация нового пользователя
Этот метод используется для регистрации нового пользователя, возвращает 201 в случае успеха и 400 в случае несоответствия входных параметров требованиям
/register
- email (обязательный, строка): Email нового пользователя.
- password (обязательный, строка): Пароль нового пользователя.
{
"email": "[email protected]",
"password": "password123A!"
}
- 201 Created: В случае успешной регистрации нового пользователя.
- 400 Bad Request: Если формат данных некорректен или некорректные параметры запроса.
{
"user_id": 2,
"password_check_status": "perfect"
}
{
"error": "invalid_email"
}
POST
/authorize
- авторизация пользователя с получением JWT токена
Этот метод используется для авторизации пользователя по логину и паролю. В случа успешной авторизации сервер возвращает JWT токен
/authorize
- email (обязательный, строка): Email существующего пользователя.
- password (обязательный, строка): Пароль существующего пользователя.
{
"email": "[email protected]",
"password": "password123A!"
}
- 200 OK: В случае успешной авторизации.
- 400 Bad Request: Если формат данных некорректен или некорректные параметры запроса.
{
"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxOX0.dQSN97nu5ILmTqNPLYNsPFY_Mq49ul0XmKgqwxw49M0"
}
{
"error": "wrong_password"
}
GET
/feed
- проверка JWT токена из заголовка Authorization
Этот метод реализует проверку JWT токена, который был получен в методе /authorize
. Токен должен быть передан в заголовке Authorization.
/feed
- Заголовок Authorization: в заголовке необходимо передать JWT токен, полученный при авторизации.
- 200 OK: В случае успешной валидации JWT.
- 401 Unauthorized: В противном случае.
Скачать репозиторий
git clone https://github.com/CDYNOT/vktest-rest.git
Для запуска сервиса потребуется установленный Docker, затем необходимо добавить новую строку в файл hosts
:
127.0.0.1 task.loc
Запсуск сервиса, при первичном запуске скачаются все нужные образы:
docker-compose up -d
Установка необходимых зависимостей и генерация autoload файла:
docker-compose exec -w /var/www/task.loc php composer install
После этого сервис станет доступен по адресу http://task.loc
Демонстрационный интерфейс работы сервиса доступен по адресу http://task.loc/demo.php.
Остановка сервиса:
docker-compose down
Для подключения к базе данных MySQL используются следующие данные:
- Host: mysql
- Имя пользователя: cdynot
- Пароль: secret
- Имя базы данных: task
- Порт: 3306
При желании, данные можно поменять в файлах docker-compose.yml
и /src/Database/Database.php