loco / swizzle
从 Swagger 兼容的 API 构建 Guzzle 服务描述
2.0.2
2019-11-19 17:23 UTC
Requires
- php: >=5.5
- ext-json: *
- guzzlehttp/guzzle-services: ^1.1
- monolog/monolog: 1.*
Requires (Dev)
- phpunit/phpunit: ^4.0 || ^5.0
This package is auto-updated.
Last update: 2024-08-29 03:26:14 UTC
README
从 Guzzle 构建服务描述,该描述符合 Swagger 标准。
是什么?
- Guzzle 是一个用于在 PHP 中构建 HTTP 客户端的框架。
- Swagger 是一个用于描述 RESTful 服务的规范。
尽管 Guzzle 的服务描述深受 Swagger 规范的启发,但它们之间的差异足够大,以至于我们需要某种东西来弥合这个差距。
Swizzle 会爬取 JSON Swagger 文档(例如我们的 文档),并将它们转换为与 guzzle/guzzle-services 兼容的模式。
重要! 此库适用于旧 Swagger 规范的 v1.2 版本,该版本已过时。
安装
安装通过 Composer 完成。
将最新稳定版本的 loco/swizzle 添加到项目的 composer.json 文件中,如下所示
{ "require": { "loco/swizzle": "~2.0" } }
如果您想直接从 Github 安装,您现在必须自己编写 自动加载器。
使用方法
基本用法是配置、构建和导出,如下所示
$builder = new Loco\Utils\Swizzle\Swizzle( 'foo', 'Foo API' ); $builder->build('http://foo.bar/path/to/swagger/docs/'); // Serialize Guzzle service config to json file_put_contents('/path/to/config.json', $builder->toJson()); // Now use saved config.json in your project/library to create Guzzle service.
更高级的用法包括为命令和响应注册自定义 Guzzle 类。请参阅 示例 目录,以获取更完整、更实用的示例。
使用 apigen 通过 apigen -c apigen.yml
构建 PHP API 文档
限制
此库仅支持旧 Swagger 规范的版本 1.2。我们为自身的需求迅速开发了此库,并未跟上最新的 OpenAPI 项目。