Реализация REST API с помощью yii2. Пример работы с одной сущностью.
После клонирования репозитория не забудьте запустить установку зависимостей проекта:
composer install
И создать хост для приложения. Можно используя консольную команду php yii serve
, либо прописав хост в веб-сервере (Apache, Nginx).
Создать БД и прописать подключение в конфиге config/db.php
, например так:
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;dbname=yii2rest',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
];
Запустить миграции БД. Для этого в корне проекта в консоли выполняем:
php yii migrate
В результате будет создан пользователь API с заданным токеном доступа, а также заполнена таблица news
, с данными которой работает REST API.
Точки входа к API:
GET api/news
: получение постранично списка всех новостей;HEAD api/news
: получение метаданных листинга новостей;POST api/news
: создание новой новости;GET api/news/123
: получение информации по конкретной новости с id равным 123;HEAD api/news/123
: получение метаданных по конкретной новости с id равным 123;PATCH api/news/123
иPUT api/news/123
: изменение информации по новости с id равным 123;DELETE api/news/123
: удаление новости с id равным 123;OPTIONS api/news
: получение поддерживаемых методов, по которым можно обратится кapi/news
;OPTIONS api/news/123
: получение поддерживаемых методов, по которым можно обратится кapi/news/123
.
NOTES:
- Удалять и обновлять сущность может только автор
- При создании передавать
author_id
не обязательно, а даже если и передать, то автором все равно будет пользователь API, отправивший запрос - Система аутентификации по типу Bearer. Поэтому c каждым запросом в заголовке
Authorization
посылаем токен доступа пользователя API
Authorization: Bearer SlAV32hkKG
- Для получения ответа в нужном формате необходимо задать заголовок
Accept
(application/json, application/xml).