appserver-io / swagger-php
swagger-php - 使用phpdoc注释生成RESTful API的交互式文档
3.0.2
2018-11-16 15:04 UTC
Requires
- php: >=7.0
- doctrine/annotations: *
- symfony/finder: >=2.2
- symfony/yaml: >=3.3
Requires (Dev)
- phpunit/phpunit: >=6.3
- squizlabs/php_codesniffer: >=3.3
- zendframework/zend-form: <2.8
- dev-master
- 3.0.2
- 3.0.1
- 3.0.0
- 2.x-dev
- 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
- dev-example-dynamic-references
This package is auto-updated.
Last update: 2024-09-21 20:08:26 UTC
README
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或拉取请求。
请确保拉取请求通过PHPUnit和PHP_CodeSniffer(PSR-2)测试。
要运行单元测试和linting,请执行
composer test
仅运行单元测试
./bin/phpunit
仅运行linting
./bin/phpcs -p --extensions=php --standard=PSR2 --error-severity=1 --warning-severity=0 ./src ./tests