ronu/laravel-openapi-generator

Automatic OpenAPI 3.0.3 documentation generator for Laravel with Postman and Insomnia export support

Installs: 56

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/ronu/laravel-openapi-generator

1.2.6 2026-02-02 23:17 UTC

README

Automatic OpenAPI 3.0.3, Postman, and Insomnia documentation generation for Laravel applications.

Latest Version Total Downloads License Laravel PHP

Requirements

  • PHP 8.1+
  • Laravel 10.x, 11.x, or 12.x
  • Composer 2.x

Installation

composer require ronu/laravel-openapi-generator

Publish configuration (recommended):

php artisan vendor:publish --tag=openapi-config

Publish templates (optional):

php artisan vendor:publish --tag=openapi-templates

Quickstart

Generate OpenAPI JSON:

php artisan openapi:generate

Generate all formats:

php artisan openapi:generate --all

Fetch via HTTP (when routes are enabled):

curl http://localhost:8000/documentation/openapi.json
curl http://localhost:8000/documentation/postman
curl http://localhost:8000/documentation/insomnia

Minimum viable configuration

The package works out-of-the-box, but most teams configure API types and routes in config/openapi.php:

return [
    'api_types' => [
        'admin' => [
            'prefix' => 'admin',
            'folder_name' => 'API Admin',
            'enabled' => true,
        ],
        'mobile' => [
            'prefix' => 'mobile',
            'folder_name' => 'API Mobile',
            'enabled' => true,
        ],
    ],
    'routes' => [
        'enabled' => true,
        'prefix' => 'documentation',
        'middleware' => [],
    ],
];

Common scenarios

1) Filter docs by API type

php artisan openapi:generate --all --api-type=admin --api-type=mobile

2) Expose documentation via HTTP

curl "http://localhost:8000/documentation/openapi.json?api_type=admin,mobile"

3) Add custom endpoint docs

// config/openapi-docs.php
'custom_endpoints' => [
    'api-apps.rotate' => [
        'summary' => 'Rotate API Key',
        'description' => 'Generates a new API key for the application.',
        'request_fields' => [
            'reason' => 'Optional reason for key rotation',
        ],
    ],
],

Edge scenarios (short list)

  • Config caching + runtime env() usage can keep old values; prefer config overrides and clear cache.
  • Concurrent generation can write to the same output files; use --output for unique paths.
  • Large route sets may time out on HTTP endpoints; generate via CLI and serve files from storage.

See Edge and extreme scenarios for details.

API reference

Troubleshooting (quick)

  • Invalid api_type: Check openapi.api_types and ensure the key is enabled.
  • No routes found: Review openapi.exclude_routes and API type filters.
  • Placeholders not updating: Clear config cache or set config values explicitly.

Full documentation

Start here: documentation/index.md

Contributing & security

  • Contributing guide: open a PR with clear scope and tests when possible.
  • Security: please report vulnerabilities privately to the maintainers.

License

MIT. See LICENSE.