Frontend

API

Основы

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:

 namespaces
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.