appserver-io/swagger-php

swagger-php - 使用phpdoc注释生成RESTful API的交互式文档

3.0.2 2018-11-16 15:04 UTC

README

Build Status Total Downloads License

swagger-php

使用doctrine annotations,为您的RESTful API生成交互式OpenAPI文档。

特性

  • 兼容OpenAPI 3.0规范。
  • 从代码和现有的phpdoc注释中提取信息。
  • 提供命令行界面。
  • 提供文档网站,包含入门指南。
  • 出色的错误报告(带有提示和上下文)

安装(使用Composer

composer require zircote/swagger-php

从任何位置使用cli,请全局安装swagger-php,并确保将~/.composer/vendor/bin目录添加到您的PATH中,以便系统可以找到openapi可执行文件。

composer global require zircote/swagger-php

使用方法

为您的php文件添加注释。

/**
 * @OA\Info(title="My First API", version="0.1")
 */

/**
 * @OA\Get(
 *     path="/api/resource.json",
 *     @OA\Response(response="200", description="An example resource")
 * )
 */

访问文档网站中的入门指南或查看示例目录以获取更多示例。

从php使用

生成始终最新的文档。

<?php
require("vendor/autoload.php");
$openapi = \OpenApi\scan('/path/to/project');
header('Content-Type: application/x-yaml');
echo $openapi->toYaml();

从命令行界面使用

将文档生成到静态json文件。

./vendor/bin/openapi --help

从反序列化器使用

从json字符串生成OpenApi注释对象,这使得可以更容易地通过编程方式操作对象。

<?php

use OpenApi\Serializer;

$serializer = new Serializer();
$openapi = $serializer->deserialize($jsonString, 'OpenApi\Annotations\OpenApi');
echo $openapi->toJson();

docker使用

将swagger文档生成到静态json文件。

docker run -v "$PWD":/app -it tico/swagger-php --help

关于OpenApi & Swagger的更多信息

贡献

请随意提交Github Issues或拉取请求。

文档网站是用docs文件夹和vuepress构建的。

请确保拉取请求通过PHPUnitPHP_CodeSniffer(PSR-2)测试。

要运行单元测试和linting,请执行

composer test

仅运行单元测试

./bin/phpunit

仅运行linting

./bin/phpcs -p --extensions=php --standard=PSR2 --error-severity=1 --warning-severity=0 ./src ./tests