primasoftware/swagger-php

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

3.1.1 2019-08-02 04:45 UTC

README

Build Status Total Downloads License

swagger-php

使用 OpenAPI 注解生成 RESTful API 的交互式文档。

特性

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

安装(使用 Composer

composer require zircote/swagger-php

从命令行界面使用,请全局安装 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 问题 或拉取请求。

文档网站是从 docs 文件夹构建的,使用 vuepress

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

要运行单元测试和代码检查,请执行

composer test

只运行单元测试

./bin/phpunit

只运行代码检查

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