New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

erasys/openapi-php

Open API 3.0 builder and validation library for PHP that helps you write valid specs.
93,087 20
Install
composer require erasys/openapi-php
Latest Version:4.0.0
PHP:^8.2
Laravel:10
Older releases:5 – 8
License:MIT
Last Updated:Apr 17, 2025
Links: GitHub  ·  Packagist
Maintainer: erasys_webteam

openapi-php

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Open API 3.0 builder and validation library for PHP that helps you write valid specs.

This project is compliant with PSR-1, PSR-2 and PSR-4. If you notice compliance oversights, please send a patch via pull request.

Features

  • Fully documented object-oriented representation of the Open API 3.0+ specification with helper methods to write valid documents.
  • Supports Illuminate (Laravel) Jsonable and Arrayable.
  • Generates an specification in plain PHP arrays, plain objects, JSON or YAML.
  • Validates Open API documents against the Open API 3.0.x JSON Schema.

Install

Via Composer

$ composer require erasys/openapi-php

Via Git

$ git clone https://github.com/erasys/openapi-php.git

Usage

Basic example:

<?php

use erasys\OpenApi\Spec\v3 as OASv3;

$doc = new OASv3\Document(
    new OASv3\Info('My API', '1.0.0', 'My API description'),
    [
        '/foo/bar' => new OASv3\PathItem(
            [
                'get' => new OASv3\Operation(
                    [
                        '200' => new OASv3\Response('Successful response.'),
                        'default' => new OASv3\Response('Default error response.'),
                    ]
                ),
            ]
        ),
    ]
);

$yaml = $doc->toYaml();
$json = $doc->toJson();
$arr  = $doc->toArray();
$obj  = $doc->toObject();

Testing

$ composer test

or

$ vendor/bin/phpunit
$ vendor/bin/phpcs

Contributing

Please see CONTRIBUTING for details.

License

The MIT License (MIT). Please see License File for more information.

Related Packages

ark4ne/laravel-openapi-generator

Generates OpenAPI 3.0, 3.1 and 3.2 documents from a Laravel application: routes,...

18,153 6
jeandormehl/openapi-gen

Generates OpenApi specification for Laravel, Lumen or Dingo using a configuratio...

526 6
kirschbaum-development/laravel-openapi-validator

Automatic OpenAPI validation for Laravel HTTP tests

1,515,598 58
wotz/laravel-swagger-ui

Add Swagger UI to a Laravel application.

584,442 281
scalar/laravel

Render your OpenAPI-based API reference

427,230 77

Version History

Version Released PHP Laravel License
4.0.0 ^8.2 ^10.14.1 MIT
3.4.0 ^7.4|^8.0 ^8.64 MIT
3.3.0 ^7.2|^8.0 ^7.0|^8.0 MIT
3.2.1 ^7.2|^8.0 ^7.0|^8.0 MIT
3.2.0 ^7.2|^8.0 ^7.0|^8.0 MIT