Download the PHP package blumilksoftware/openapi-toolbox without Composer
On this page you can find all versions of the php package blumilksoftware/openapi-toolbox. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download blumilksoftware/openapi-toolbox
More information about blumilksoftware/openapi-toolbox
Files in blumilksoftware/openapi-toolbox
Package openapi-toolbox
Short Description OpenAPI handy toolbox for Laravel applications.
License MIT
Homepage https://github.com/blumilksoftware/openapi-toolbox
Informations about the package openapi-toolbox
🧰 openapi-toolbox
OpenAPI Toolbox is a handy package with all important documentation-related features we are using in some of @blumilksoftware projects.
Installation
Install package via Composer and publish configuration file:
If you need it only for internal development (no documentation serving) you can install it with a development flag:
Configuration
Configuration file should be published into your application after running php artisan vendor:publish
command. It should look like below:
Features
Multiple documentations
You can create more than one documentation by adding element to openapi_toolbox.documentations
array.
OpenAPI documentation UI
With configuration ui.enabled = true
a documentation UI will be built from configurable path and served on configurable route. Currently, the Stoplight Elements and Swagger UI are only available UI base components configurable by ui.provider
setting.
By default, it should be one documentation available under GET /documentation
.
By changing configuration variable ui.single_source
to true
, application will serve already built single source file for GUI.
OpenAPI documentation endpoint
Serving a documentation itself can be tricky, especially if specification is built from multiple nested files. Here OpenAPI specification files will be built accordingly to configuration and by default the result should be available under GET /documentation/raw
.
OpenAPI specification validation
OpenAPI specification files will be built accordingly to configuration and validated on demand by running an Artisan command:
Good example of usage would be adding this command to CI pipeline for opened pull requests.
Testing requests and responses against OpenAPI specification
Based on kirschbaum-development/laravel-openapi-validator, special trait added to selected PHPUnit test cases enables validation against application's OpenAPI specification:
By default, the documentation will be used from openapi_toolbox.default
option. You should consider to override getDocumentationName()
or getDocumentationConfig()
method to select documentation you want to test.
Every time any HTTP call to application would be performed during tests, additional validation will be performed and structure of requests and responses will be checked against OpenAPI specification. For special cases (e.g. testing invalid requests) this validation can be disabled by using $this->withoutRequestValidation()
and $this->withoutResponseValidation()
.
With configuration cache.enabled = true
internal builders will use cached OpenAPI specifications.
You can change the cache store by setting the cache.driver
option, for example: cache.driver = redis
. Make sure to use one of the cache drivers available in your Laravel application.
All versions of openapi-toolbox with dependencies
illuminate/config Version ^11.0
illuminate/console Version ^11.0
illuminate/http Version ^11.0
illuminate/support Version ^11.0
kirschbaum-development/laravel-openapi-validator Version ^1.0
krzysztofrewak/openapi-merge Version ^2.1