basster/silex-simple-swagger-provider

一个将swagger-php 2.0集成到silex中的silex服务提供者

2.0 2016-06-08 14:18 UTC

This package is auto-updated.

Last update: 2024-09-22 06:17:09 UTC


README

Build Status Scrutinizer Code Quality Code Coverage

silex-simple-swagger-provider 是一个将 swagger-php (版本 2) 集成到 silex 中的silex服务提供者。此服务提供者添加了基于swagger-php注解生成和公开swagger定义的路由。然后可以使用 swagger-ui 来使用swagger定义。

此库深受Jason Desrosiers的 silex-swagger-provider 的启发,但完全重写以满足 swagger-php (版本 2) 的需求。

Silex 2的安装

使用 composer 安装silex-swagger-provider。

composer require basster/silex-simple-swagger-provider:^2.0

参数

  • swagger.servicePath: 包含你的swagger注解的类路径。
  • swagger.excludePath: 在生成注解时将被排除的字符串路径或路径数组。
  • swagger.apiDocPath: 将用于访问swagger定义的URI。默认为 /api/api-docs
  • swagger.cache: 将传递给Symfony 2的 Response::setCache 方法的缓存选项数组。

服务

  • swagger: Swagger\Annotations\Swagger 的实例。它是已经解析的swagger注解树。

注册

$app->register(new Basster\Silex\Provider\Swagger\SwaggerProvider(), [
    "swagger.servicePath" => __DIR__ . "/path/to/your/api",
]);

用法

默认提供以下路由

  • GET /api/api-docs: 获取资源列表

swagger定义文件的输出不会在内部进行缓存。相反,创建的路由旨在与HTTP缓存(如浏览器缓存或反向代理)一起工作。您可以使用 swagger.cache 参数配置您希望缓存服务的方式。默认情况下,不会进行缓存。有关如何自定义缓存行为的更多信息,请参阅Symfony中的 HTTP缓存。以下示例将允许服务定义文件缓存5天。

$app["swagger.cache"] = [
    "max_age": "432000", // 5 days in seconds
    "s_maxage": "432000", // 5 days in seconds
    "public": true,
]