PHPackages                             nicoandra/laravel-data-openapi-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. nicoandra/laravel-data-openapi-generator

ActiveLibrary[API Development](/categories/api)

nicoandra/laravel-data-openapi-generator
========================================

Generate OpenAPI specification from Laravel routes and Laravel Data objects.

v0.0.6(1mo ago)1100↓100%[1 PRs](https://github.com/nicoandra/laravel-data-openapi-generator/pulls)MITPHP

Since Apr 1Pushed 1mo agoCompare

[ Source](https://github.com/nicoandra/laravel-data-openapi-generator)[ Packagist](https://packagist.org/packages/nicoandra/laravel-data-openapi-generator)[ RSS](/packages/nicoandra-laravel-data-openapi-generator/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (6)Dependencies (8)Versions (12)Used By (0)

Laravel Data OpenAPI Generator
==============================

[](#laravel-data-openapi-generator)

Generate an OpenAPI specification directly from Laravel routes and [Spatie Laravel Data](https://spatie.be/docs/laravel-data) classes.

The package treats your controllers and `Data` objects as the source of truth for request and response documentation, so your OpenAPI file stays close to the code that actually handles the API.

What it does
------------

[](#what-it-does)

- Generates OpenAPI paths from Laravel routes.
- Infers request bodies and response schemas from `Data` classes.
- Supports route parameters declared directly in controller methods.
- Supports route parameters injected through `#[FromRouteParameter(...)]`.
- Reads `#[Summary]`, `#[Description]`, and `#[Example]` attributes to enrich the generated spec.
- Supports `#[IgnoreFromOpenApi]` on request properties, controller classes, and controller methods, to keep utility methods from being exposed to the public.
- Supports custom response status codes through `#[HttpResponseStatus(...)]`.
- Supports multiple content types through `#[CustomContentType(...)]`.
- Adds security requirements and `401` / `403` responses from configured middleware.
- Allows namespace aliasing so generated schema names do not leak internal class structure.
- Exposes both a JSON endpoint and a Swagger UI page.

Installation
------------

[](#installation)

Install the package:

```
composer require nicoandra/laravel-data-openapi-generator
```

Publish the configuration:

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

Quick start
-----------

[](#quick-start)

Use `Data` classes for your API inputs and outputs:

```
