open-solid/open-api-bundle
最新稳定版本:v0.3.1
Composer 安装命令:
composer require open-solid/open-api-bundle
包简介
Provides a tight integration of OpenApi into the Symfony full-stack framework
README 文档
README
Provides a tight integration of the famous zircote/swagger-php library into the Symfony full-stack framework for generating
OpenAPI spec and building Restful APIs quickly.
This bundle is especially created for API-First development.
Installation
composer require open-solid/open-api-bundle
Import the bundle's routes in config/routes.yaml to show the Swagger API documentation:
openapi: resource: '@OpenApiBundle/config/routes.php'
Basic Sample
Define your OpenAPI spec and endpoint at the same time:
<?php namespace Api\Catalog\Controller\Post; use Api\Catalog\Model\Product; use OpenSolid\OpenApiBundle\Attribute\Payload; use OpenSolid\OpenApiBundle\Routing\Attribute\Post; class PostProductAction { #[Post('/products')] public function __invoke(#[Payload] PostProductPayload $payload): Product { return new Product($payload->name, $payload->price); } }
Main Features
- Generate OpenAPI spec from PHP attributes (Mainly based on
zircote/swagger-php)- Automatic
Operation,SchemaandPropertyguessing from PHP classes and methods
- Automatic
- Expose Swagger UI to explore the OpenAPI spec and test API endpoints
- Export OpenAPI spec in JSON or YAML format (via HTTP and console command)
- Import OpenAPI spec in JSON or YAML format (via config file)
- Define Symfony routes and OpenAPI Paths using the same attributes:
#[Post],#[Get],#[Put],#[Patch],#[Delete]
- Conditional OpenAPI Path/Route definition:
- Example:
#[Get('/me', when: 'service("toggle_me").isEnabled()')]
- Example:
- Symfony attributes abbreviations:
#[Payload]instead of#[MapRequestPayload]#[Query]instead of#[MapQueryString]
- OpenAPI attributes abbreviations:
#[Path]instead of#[PathParameter]#[Param]instead of#[QueryParameter]
- Symfony's validation constraints definition using OpenAPI attributes:
- Example:
#[Property(minLength: 3, maxLength: 255)]
- Example:
- Automatic controller response serialization (JSON format by default)
- Generate new endpoints from API spec (WIP) (based on
open-solid/open-api-assistant-bundle)
License
This software is published under the MIT License
统计信息
- 总下载量: 87
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-11-23