Основы
MoonShine дает возможность переключения административной панели в режим API
.
Для этого достаточно в заголовок запроса добавить Accept: application/json
, после чего CRUD
операции будут возвращать json
ответы.
Также мы поставляем инструменты, дающие возможность переключения аутентификации на JWT
токены, а также генерацию OpenApi
спецификации и документацию на основе ресурсов.
При полноценном использовании MoonShine в режиме API не забудьте отключить сессионные middleware в конфигурации MoonShine.
Обратите также внимание на раздел SDUI.
JWT
MoonShine также предоставляет простой способ переключить панель администратора в режим API
и взаимодействовать через токены.
Установка:
composer require moonshine/jwt
Далее опубликуйте конфиг:
php artisan vendor:publish --provider="MoonShine\JWT\Providers\JWTServiceProvider"
Далее добавьте в .env
секретный ключ в base64
:
JWT_SECRET=YOUR_BASE64_SECRET_HERE
Далее измените набор middleware
в системе и добавьте authPipeline
и authMiddleware
:
use MoonShine\JWT\JWTAuthPipe;use MoonShine\JWT\Http\Middleware\AuthenticateApi; return [ 'middleware' => [ AuthenticateApi::class ], 'auth' => [ // ... 'pipelines' => [ JWTAuthPipe::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
Далее опубликуйте конфиг:
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',];
Далее на основе объявленных и настроенных ресурсов в системе будет сформирована спецификация:
php artisan oag:generate
Файлы спецификации по умолчанию располагаются в директории resources
:
resources/oag.yaml
,resources/oag.json
.
Документация доступна по адресу /docs
.