sonata/docs

There is no license information available for the latest version (v1.0.2) of this package.

OpenAPI docs module for Sonata framework

Installs: 6

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/sonata/docs

v1.0.2 2026-02-07 09:22 UTC

This package is auto-updated.

Last update: 2026-02-07 09:23:33 UTC


README

Модуль OpenAPI для Sonata Framework. Генерирует спецификацию и отдает ее через эндпоинт.

Установка

composer require sonata/docs

Эндпоинты

Контроллер Sonata\Docs\Controllers\SwaggerController подключается автоматически:

  • GET /openapi.json — OpenAPI спецификация

Логика

  • Генератор OpenApiGenerator сканирует контроллеры и DTO.
  • Использует атрибуты #[Route], #[Controller], #[Tag], #[Response], #[From].
  • В prod режиме применяет OpenApiCache.

Атрибуты для документации

Используйте атрибуты Sonata Framework и OpenAPI:

  • #[Tag('Название', 'Описание')] — группировка методов
  • #[Response(Dto::class, isArray: true)] — схема ответа
  • #[From('json'|'query')] — источник данных
  • #[OpenApi\Attributes\Property(...)] — описание полей DTO

Пример:

use OpenApi\Attributes as OA;
use Sonata\Framework\Attributes\Response;
use Sonata\Framework\Attributes\Tag;

#[Tag('Пользователи')]
class UserController
{
    #[Response(UserResponse::class, isArray: true)]
    public function list(): array { /* ... */ }
}

final class UserResponse
{
    #[OA\Property(example: 1, description: 'ID пользователя')]
    public int $id;
}

Swagger UI

UI в комплект не входит. Можно:

  1. Использовать локальные ассеты (как в приложении view/swagger).
  2. Подключить Swagger UI через CDN и указывать /openapi.json как источник.