Основы
MoonShine дает возможность переключения административной панели в режим API
.
Для этого достаточно в заголовок запроса добавить Accept: application/json
, после чего CRUD
операции будут возвращать json
ответы.
Также мы поставляем инструменты, дающие возможность переключения аутентификации на JWT
токены, а также генерацию OpenApi
спецификации и документацию на основе ресурсов.
При полноценном использовании MoonShine в режиме API не забудьте отключить сессионные middleware в конфигурации MoonShine.
Обратите также внимание на раздел SDUI.
JWT
MoonShine также предоставляет простой способ переключить панель администратора в режим API
и взаимодействовать через токены.
Установка:
composer require moonshine/jwt
composer require moonshine/jwt
Далее опубликуйте конфиг:
php artisan vendor:publish --provider="MoonShine\JWT\Providers\JWTServiceProvider"
php artisan vendor:publish --provider="MoonShine\JWT\Providers\JWTServiceProvider"
Далее добавьте в .env
секретный ключ в base64
:
JWT_SECRET=YOUR_BASE64_SECRET_HERE
JWT_SECRET=YOUR_BASE64_SECRET_HERE
Далее измените набор middleware
в системе и добавьте authPipeline
и authMiddleware
:
use MoonShine\JWT\JWTAuthPipe;use MoonShine\JWT\Http\Middleware\AuthenticateApi;return ['middleware' => [// empty],'auth' => [// ...'middleware' => AuthenticateApi::class,'pipelines' => [JWTAuthPipe::class],]// ...];
use MoonShine\JWT\JWTAuthPipe;use MoonShine\JWT\Http\Middleware\AuthenticateApi;return ['middleware' => [// empty],'auth' => [// ...'middleware' => AuthenticateApi::class,'pipelines' => [JWTAuthPipe::class],]// ...];
use MoonShine\JWT\JWTAuthPipe;use MoonShine\JWT\Http\Middleware\AuthenticateApi;$config->authPipelines([JWTAuthPipe::class])->middlewares([])->authMiddleware(AuthenticateApi::class);
use MoonShine\JWT\JWTAuthPipe;use MoonShine\JWT\Http\Middleware\AuthenticateApi;$config->authPipelines([JWTAuthPipe::class])->middlewares([])->authMiddleware(AuthenticateApi::class);
Всё готово! При успешной аутентификации вы получите токен, который в последующем можно использовать в заголовке Authorization: Bearer <token>
.
OpenApi генератор
Установка:
composer require moonshine/oag
composer require moonshine/oag
Далее опубликуйте конфиг:
php artisan vendor:publish --provider="MoonShine\OAG\Providers\OAGServiceProvider"
php artisan vendor:publish --provider="MoonShine\OAG\Providers\OAGServiceProvider"
Конфигурация уже настроена, в особых случаях вы можете переопределить определенные настройки:
return [// Заголовок документации'title' => 'Docs',// Путь расположения спецификации'path' => realpath(resource_path('oag.yaml')),// Роут получения данных для документации'route' => 'oag.json',// view для документации'view' => 'oag::docs',];
return [// Заголовок документации'title' => 'Docs',// Путь расположения спецификации'path' => realpath(resource_path('oag.yaml')),// Роут получения данных для документации'route' => 'oag.json',// view для документации'view' => 'oag::docs',];
Далее на основе объявленных и настроенных ресурсов в системе будет сформирована спецификация:
php artisan oag:generate
php artisan oag:generate
Файлы спецификации по умолчанию располагаются в директории resources
:
resources/oag.yaml
,resources/oag.json
.
Документация доступна по адресу /docs
.