phrity / slim-openapi
为 Slim 4 实现的 OpenApi。
1.2.1
2022-10-11 16:36 UTC
Requires
- php: ^7.4 | ^8.0
- cebe/php-openapi: ^1.4
- league/openapi-psr7-validator: ^0.15
- psr/container: ^1.0 | ^2.0
- psr/http-message: ^1.0
- psr/http-server-middleware: ^1.0
- slim/slim: ^4.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- php-di/php-di: ^6.0
- phpunit/phpunit: ^9.0
- slim/psr7: ^1.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-12 21:06:55 UTC
README
OpenApi for Slim v4
适配器读取 OpenApi 架构并将包含的路由添加到 Slim。通过在 OpenApi 架构中定义 operationId
,适配器将自动实例化和调用引用的控制器类。
一些功能
- 自动将路由映射到控制器
- JSON 或 YAML 源中的 OpenApi 规范
- 可选请求和响应验证
安装
使用 Composer 安装;
composer require phrity/slim-openapi
如何使用
use Phrity\Slim\OpenApi; use Slim\Factory\AppFactory; // Create Slim App as you normally would $slim = AppFactory::create(); // Create OpenApi adapter with OpenApi source $openapi = new OpenApi('openapi.json'); // Push all routes from OpenApi to Slim $openapi->route($slim); // Run Slim $slim->run();
如何定义控制器
为了使自动映射工作,必须在 OpenApi 源中所有定义的路由上设置 operationId
。如果没有指定方法,则会在类上调用类方法 __invoke()
。
示例
{ "openapi": "3.0.0", "paths": { "/test": { "get": { "operationId": "Test/MyController", "description": "Will invoke on class Test\\MyController" }, "put": { "operationId": "Test\\MyController:put", "description": "Will call method put() on class Test\\MyController" } } } }