Skip to content

antonkanevsky/yii2-simple-rest-api

Repository files navigation

Yii 2 REST API

Реализация REST API с помощью yii2. Пример работы с одной сущностью.

INSTALLATION

После клонирования репозитория не забудьте запустить установку зависимостей проекта:

composer install

И создать хост для приложения. Можно используя консольную команду php yii serve, либо прописав хост в веб-сервере (Apache, Nginx).

STEPS BEFORE TESTING

Создать БД и прописать подключение в конфиге 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.

REQUESTS

Точки входа к 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).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published