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 模板)。关于如何解决这个问题,我有两个建议:

  1. 自己添加示例 return 值。 codegen 并不是一个完整的解决方案,而是一个开发的起点。生成代码后,实施并添加您自己的业务逻辑。
  2. 创建您自己的代码生成模板。对于需要 Swagget codegen 来做一些当前不受支持的事情的人来说,这是一个流行的选择:https://github.com/swagger-api/swagger-codegen/wiki/Building-your-own-Templates