batyukovstudio/apiato-swagger-generator

Swagger docs generator for Apiato

1.0.4 2024-12-04 10:21 UTC

This package is auto-updated.

Last update: 2025-03-04 10:55:42 UTC


README

Requirements

  • PHP 8.1+
  • Laravel 10+
  • Apiato 10+
  • PHPUnit 10+

Installation

To install the package via composer, Run:

composer require batyukovstudio/apiato-swagger-generator

Usage

Generate documentation base:

php artisan swagger:generate

Run tests

php artisan test

Tests integration

  1. Setup PHPUnit with apiato: https://apiato.io/docs/components/optional-components/tests/
  2. Include Batyukovstudio\ApiatoSwaggerGenerator\PhpUnitExtension extension (see phpunit.example.test)
<extensions>
    <bootstrap class="Batyukovstudio\ApiatoSwaggerGenerator\PhpUnitExtension">
    </bootstrap>
</extensions>
  1. Register global middleware in your main Kernel class (HttpKernel in Apiato)
use Batyukovstudio\ApiatoSwaggerGenerator\Middlewares\SwaggerGeneratorMiddleware;

class HttpKernel extends LaravelHttpKernel
{
    protected $middleware = [
        // Laravel middlewares
        SwaggerGeneratorMiddleware::class,
        // other middlewares
    ];
}
  1. Import trait to your parent TestCase to enable recording test responses
use Batyukovstudio\ApiatoSwaggerGenerator\Traits\CanRecordTestResponses;

class YourParentTestCase extends AbstractTestCase
{
    use CanRecordTestResponses;
}
  1. Add function hasAdminRole: bool to User model
public function hasAdminRole(): bool
{
    return $this->hasRole(config('appSection-authorization.admin_role'));
}
  1. Enjoy it 😇😇😇