zircote / swagger-php
swagger-php - 使用phpdoc注释生成RESTful API的交互式文档
Requires
- php: >=7.2
- ext-json: *
- psr/log: ^1.1 || ^2.0 || ^3.0
- symfony/deprecation-contracts: ^2 || ^3
- symfony/finder: >=2.2
- symfony/yaml: >=3.3
Requires (Dev)
- composer/package-versions-deprecated: ^1.11
- doctrine/annotations: ^1.7 || ^2.0
- friendsofphp/php-cs-fixer: ^2.17 || ^3.47.1
- phpstan/phpstan: ^1.6
- phpunit/phpunit: >=8
- vimeo/psalm: ^4.23
Suggests
- doctrine/annotations: ^1.7 || ^2.0
- dev-master / 4.x-dev
- 4.10.6
- 4.10.5
- 4.10.4
- 4.10.3
- 4.10.2
- 4.10.1
- 4.10.0
- 4.9.3
- 4.9.2
- 4.9.1
- 4.9.0
- 4.8.7
- 4.8.6
- 4.8.5
- 4.8.4
- 4.8.3
- 4.8.2
- 4.8.1
- 4.8.0
- 4.7.16
- 4.7.15
- 4.7.14
- 4.7.13
- 4.7.12
- 4.7.11
- 4.7.10
- 4.7.9
- 4.7.8
- 4.7.4
- 4.7.3
- 4.7.2
- 4.7.1
- 4.7.0
- 4.6.2
- 4.6.1
- 4.6.0
- 4.5.6
- 4.5.5
- 4.5.4
- 4.5.3
- 4.5.2
- 4.5.1
- 4.5.0
- 4.4.10
- 4.4.9
- 4.4.8
- 4.4.7
- 4.4.6
- 4.4.5
- 4.4.4
- 4.4.3
- 4.4.2
- 4.4.1
- 4.4.0
- 4.3.0
- 4.2.15
- 4.2.14
- 4.2.13
- 4.2.12
- 4.2.11
- 4.2.10
- 4.2.9
- 4.2.8
- 4.2.7
- 4.2.6
- 4.2.5
- 4.2.4
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.1
- 4.1.0
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 4.0.0-RC1
- 3.x-dev
- 3.3.7
- 3.3.6
- 3.3.5
- 3.3.4
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.x-dev
- 2.1.13
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.16
- 2.0.15
- 2.0.14
- 2.0.13
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.0.0
- 0.9.6
- 0.9.5
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.1
- 0.6.0
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.1
- 0.1.0
This package is not auto-updated.
Last update: 2024-09-19 03:03:02 UTC
README
swagger-php
使用 OpenAPI 标注(自版本4.8起为可选;如果需要,除了swagger.php外,还必须安装doctrine/annotations
库)或PHP属性来生成RESTful API的交互式文档。
有关支持的所有标注的完整列表,请参阅OpenApi\Annotations
命名空间或文档网站。
功能
- 兼容OpenAPI 3.0 和 3.1 规范。
- 从代码和现有的phpdoc标注中提取信息。
- 提供命令行界面。
- 文档网站带有入门指南。
- 出色的错误报告(带有提示和上下文)
- 自PHP 8.1起,所有标注也作为PHP属性提供
OpenAPI版本支持
swagger-php
允许生成针对OpenAPI 3.0.0
或OpenAPI 3.1.0
的规范。默认情况下,规范将版本为3.0.0
。可以使用命令行选项--version
将其更改为3.1.0
。
程序上,可以使用Generator::setVersion()
方法更改版本。
要求
swagger-php
要求至少PHP 7.2来使用标注,并使用PHP 8.1来使用属性。
安装(使用Composer)
composer require zircote/swagger-php
要从任何地方使用命令行安装swagger-php,请全局安装它,并确保将~/.composer/vendor/bin
目录添加到您的PATH中,以便系统可以找到openapi
可执行文件。
composer global require zircote/swagger-php
doctrine/annotations
自版本4.8
起,doctrine annotations库是可选的
且不再默认安装
。
要使用PHPDoc标注,则需要在此之上安装它
composer require doctrine/annotations
如果您的代码使用PHPDoc标注,则也需要安装此库
composer require doctrine/annotations
用法
将标注添加到您的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\Generator::scan(['/path/to/project']); header('Content-Type: application/x-yaml'); echo $openapi->toYaml();
有关如何使用Generator
类的说明,请参阅Generator参考。
从命令行界面使用
可以使用命令行界面openapi
将文档生成到静态yaml/json文件。
./vendor/bin/openapi --help
从版本4开始,在命令行上使用的默认分析器是新的ReflectionAnalyser
。
使用--legacy
标志(-l
),仍然可以使用旧的TokenAnalyser
。
从反序列化器使用
从json字符串生成OpenApi注解对象,这使得以编程方式操作对象更加容易。
<?php use OpenApi\Serializer; $serializer = new Serializer(); $openapi = $serializer->deserialize($jsonString, 'OpenApi\Annotations\OpenApi'); echo $openapi->toJson();