membrane/openapi-router
最新稳定版本:0.5.2
Composer 安装命令:
composer require membrane/openapi-router
包简介
README 文档
README
This library routes HTTP requests to operationIds in your OpenAPI specification. To make sure it runs quickly we've used techniques inspired by Nikita Popov and Nicolas Grekas.
Requirements
- A valid OpenAPI specification.
- An operationId on all Operation Objects so that each route is uniquely identifiable.
Rules
Naming Conventions
- Forward slashes at the end of a server url will be ignored since paths MUST begin with a forward slash.
- Dynamic paths which are identical other than the variable names MUST NOT exist.
Routing Priorities
- Static urls MUST be prioritized over dynamic urls.
- Longer urls are prioritized over shorter urls.
- Hosted servers will be prioritized over hostless servers.
Installation
composer require membrane/openapi-router
Quick Start
To read routes dynamically, you can do the following:
<?php use Membrane\OpenAPIRouter\Reader\OpenAPIFileReader;use Membrane\OpenAPIRouter\RouteCollector;use Membrane\OpenAPIRouter\Router; $openApi = (new OpenAPIFileReader())->readFromAbsoluteFilePath('/app/petstore.yaml'); $routeCollection = (new RouteCollector())->collect($openApi); $router = new Router($routeCollection); $requestedOperationId = $router->route('http://petstore.swagger.io/v1/pets', 'get'); echo $requestedOperationId; // listPets
Caching Routes
Run the following console command to cache the routes from your OpenAPI, to avoid reading your OpenAPI file everytime:
membrane:router:generate-routes <openapi-filepath> <destination-filepath>
<?php use Membrane\OpenAPIRouter\Router; $routeCollection = include '/app/cache/routes.php'; $router = new Router($routeCollection); $requestedOperationId = $router->route('http://petstore.swagger.io/v1/pets', 'get'); echo $requestedOperationId; // listPets
统计信息
- 总下载量: 20.26k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: MPL-2.0
- 更新时间: 2023-02-17