phrity / slim-openapi

为 Slim 4 实现的 OpenApi。

1.2.1 2022-10-11 16:36 UTC

This package is auto-updated.

Last update: 2024-09-12 21:06:55 UTC


README

Build Status Coverage Status

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"
            }
        }
    }
}

文档

版本