ark4ne/laravel-openapi-generator

OpenApi - Laravel Documentation Generator

v0.0.0 2023-06-01 12:31 UTC

This package is auto-updated.

Last update: 2024-04-22 12:16:53 UTC


README

A OpenApi documentation generator for Laravel.

example branch parameter codecov

Installation

composer require ark4ne/laravel-openapi-generator

Usage

php artisan openapi:generate

Config

...

Versions

The "Versions" section allows you to specify different configurations for each version of your API.

output-file

Output-file name.

title

Document title.

description

Document description.

routes

Define which routes will be processed. The pattern must be a shell mask.

'routes' => [
    'api/*'
],

groupBy

Document description. Used to group API routes.

by

Define a group by according to :

  • controller : The route controller class
  • uri : The route uri
  • name : The route name

regex

Define a regex that will retrieve the name of the group.

ex:

'groupBy' => [
    'by' => 'controller',
    'regex' => '/^App\\\\Http\\\\(\w+)/'
],

With this, routes will be grouped by controller class name.

ignore-verbs

HTTP verbs to ignore.

Parses

Define all parser used for documentate a specific class.

For each object, only one parser will be used.
For instance :

class MyResourceCollection extends ResourceCollection {}

ResourceCollectionParser and JsonResourceParser are eligible, because MyResourceCollection extends from ResourceCollection which extends from JsonResource.

The order of the parsers will define which parser we will use: 1st eligible => parser used.

For MyResourceCollection we will therefore use ResourceCollection.

requests

Requests parsers.

rules

Request rules parsers.

responses

Responses parsers.

middlewares

Surcharge global middlewares config.

@see Middlewares

Format

date

Defines how date formats will be understood.

Middlewares

Defines middlewares transformers.

For each middlewares, you can define a transformer that will be used to transform the request or responses.

'middlewares' => [
     'auth:sanctum' => [
         \Ark4ne\OpenApi\Transformers\Middlewares\ApplyBearerTokenSecurity::class,
     ],
     \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class => [
         \Ark4ne\OpenApi\Transformers\Middlewares\ApplyCsrfSecurity::class,
     ]
],

Connections

use-transaction

Defines whether to use transactions on different database connections.

Using transaction will create and save models via factories. The saved models will be deleted at the end of the generation via a rollback.

Without transactions, models will be created but not saved, which can lead to errors during generation.