kleijnweb / swagger-bundle
将您的Swagger定义转换为路由和验证规范
Requires
- php: ^7.0.0
- doctrine/cache: ^1.6
- doctrine/collections: ^1.3
- kleijnweb/php-api-descriptions: ^1.0.0-alpha4
- kleijnweb/php-api-hydrator: ^1.0.0-alpha2
- kleijnweb/php-api-middleware: ^1.0.0-alpha1
- kleijnweb/php-api-routing-bundle: ^1.0.0-alpha1
- psr/log: ^1.0
- symfony/config: >=2.8.7
- symfony/dependency-injection: >=2.8.7
- symfony/event-dispatcher: >=2.8.7
- symfony/filesystem: >=2.8.7
- symfony/finder: >=2.8.7
- symfony/http-foundation: >=2.8.7
- symfony/http-kernel: >=2.8.7
- symfony/property-access: >=2.8.7
- symfony/routing: >=2.8.7
- symfony/yaml: >=2.8.7
Requires (Dev)
- phpunit/phpunit: ^5.2
- phpunit/phpunit-mock-objects: ^3.1
- satooshi/php-coveralls: ^1.0
- symfony/browser-kit: >=2.8.7
- symfony/framework-bundle: >=2.8.7
- symfony/monolog-bridge: >=2.8.7
- symfony/monolog-bundle: ^2.8
- symfony/security-bundle: >=2.8.7
This package is not auto-updated.
Last update: 2024-01-15 08:27:58 UTC
README
使用Swagger(《开放API》规范)反转工作流程(先定义合同),以最小配置设置Symfony REST应用程序。
旨在轻量级,此包不依赖于FOSRestBundle或Twig。
注意: 您正在查看主要(4.0 BETA)开发线,仅支持PHP 7。SwaggerBundle 3.x是稳定版,得到维护,并支持PHP 5.4及以上版本。
要查看工作示例,请访问https://github.com/kleijnweb/swagger-bundle-example。
合同优先
我们认为您的OpenAPI定义即是您的配置,并努力实现“最小额外配置”。在核心上,SwaggerBundle执行以下三个操作:
- 配置Symfony路由
- 验证输入
- 强制/转换输入和输出
使用方法
- 创建一个OpenAPI文档,例如使用http://editor.swagger.io/。
- 安装和配置此包
- 创建一个或多个控制器(作为服务)
有关更多详细信息,请查看用户文档。
4.0版的新功能
SwaggerBundle 4.0目前处于beta阶段。与OpenAPI文档相关的许多行为都已移动到KleijnWeb\PhpApi\Descriptions。
路由
现在使用kleijnweb/php-api-routing-bundle并进行了多项小改进。
安全集成
请求匹配、投票、OpenAPI配置的RBAC。请参阅文档。
序列化/反序列化
对第三方序列化器的支持已替换为新的基于API描述的(反)序列化器。反序列化无类型数据期望为stdClass|stdClass[]
,而不是像<4.0
默认值那样是数组和关联数组的组合。
新的过程支持JSON-Schema特定功能,如默认值和智能NULL/undefined处理,以及高度的扩展性。这允许您将几乎任何您喜欢的内容钩入(反)序列化过程,例如从数据存储加载要填充请求值的对象或保留在请求中多次出现的对象的身份。
测试
已删除对SwaggerAssertions
的依赖,因为响应验证现在由KleijnWeb\PhpApi\Descriptions
和集成到请求周期中提供。
错误和异常
vnd.error
支持已被移除,以支持更简单的错误响应。这还去除了大多数用例中不需要的一些依赖。HttpError
现在支持AccessDeniedException
。
常见问题解答
- SwaggerBundle 会做
x
吗?
如果 x
是以下任何一项,答案可能会保持为 '不'。
- 处理表单提交。
- 生成 API 文档。
- 支持 Symfony 子请求。您不会错过它们。
- 支持 XML。
Symfony 兼容性
SwaggerBundle 已针对 Symfony 2.8.18 和最新版本(4.x.x)进行测试,至少每周一次。
注意事项
请访问 发布页面 以获取最新版本的详细信息。
贡献
只要以下条件满足,拉取请求就非常受欢迎:
- 所有自动化检查均成功
- 合并不会违反语义版本控制
- 在适用的情况下,相关文档已更新
许可
KleijnWeb\SwaggerBundle 在 LGPL,版本 3.0 的条款下提供。