Swaggerhub returns 预定义响应,但服务器存根没有
Swaggerhub returns predefined response, but server stub doesn't
我有 API yaml 规范,它定义了每个端点的响应,例如我想要 /version
returns version1.0
的定义:
openapi: "3.0.3"
info:
title: "TITLE"
description: "DESCRIPTION"
version: "1.0.0"
paths:
/version:
get:
description: "description"
responses:
"200":
description: "description"
content:
application/json:
schema:
$ref: '#/components/schemas/version'
components:
schemas:
version:
type: object
properties:
version:
type: string
example:
"version": "version1.0"
API 运行 在 Swaggerhub 上的服务器工作正常,但例如python-由 Swaggerhub 和 运行 在我的机器上本地生成的 python-flask 服务器存根 returns do some magic!
每个端点而不是 yaml 中提供的 example
。与使用 swagger-codegen 和 openapi-generator 生成的服务器存根相同。
我主要感兴趣的是让它适用于 openapi-generator 生成的服务器存根。
这是按预期工作的。
example
标签是一个 OpenAPI 标签,用于向您的用户提供示例对象或架构,以演示您的 API 的用法。当您对 SwaggerHub 提供的虚拟化服务进行 API 调用时,SwaggerHub (virtserver
) 提供的虚拟服务能够解释 example
值和 return 这些值。
另一方面,codegen 可能会或可能不会以相同的方式处理 example
标签(这取决于 codegen 模板)。关于如何解决这个问题,我有两个建议:
- 自己添加示例 return 值。 codegen 并不是一个完整的解决方案,而是一个开发的起点。生成代码后,实施并添加您自己的业务逻辑。
- 创建您自己的代码生成模板。对于需要 Swagget codegen 来做一些当前不受支持的事情的人来说,这是一个流行的选择:https://github.com/swagger-api/swagger-codegen/wiki/Building-your-own-Templates
我有 API yaml 规范,它定义了每个端点的响应,例如我想要 /version
returns version1.0
的定义:
openapi: "3.0.3"
info:
title: "TITLE"
description: "DESCRIPTION"
version: "1.0.0"
paths:
/version:
get:
description: "description"
responses:
"200":
description: "description"
content:
application/json:
schema:
$ref: '#/components/schemas/version'
components:
schemas:
version:
type: object
properties:
version:
type: string
example:
"version": "version1.0"
API 运行 在 Swaggerhub 上的服务器工作正常,但例如python-由 Swaggerhub 和 运行 在我的机器上本地生成的 python-flask 服务器存根 returns do some magic!
每个端点而不是 yaml 中提供的 example
。与使用 swagger-codegen 和 openapi-generator 生成的服务器存根相同。
我主要感兴趣的是让它适用于 openapi-generator 生成的服务器存根。
这是按预期工作的。
example
标签是一个 OpenAPI 标签,用于向您的用户提供示例对象或架构,以演示您的 API 的用法。当您对 SwaggerHub 提供的虚拟化服务进行 API 调用时,SwaggerHub (virtserver
) 提供的虚拟服务能够解释 example
值和 return 这些值。
另一方面,codegen 可能会或可能不会以相同的方式处理 example
标签(这取决于 codegen 模板)。关于如何解决这个问题,我有两个建议:
- 自己添加示例 return 值。 codegen 并不是一个完整的解决方案,而是一个开发的起点。生成代码后,实施并添加您自己的业务逻辑。
- 创建您自己的代码生成模板。对于需要 Swagget codegen 来做一些当前不受支持的事情的人来说,这是一个流行的选择:https://github.com/swagger-api/swagger-codegen/wiki/Building-your-own-Templates