loco/swizzle

从 Swagger 兼容的 API 构建 Guzzle 服务描述

2.0.2 2019-11-19 17:23 UTC

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 项目。