如何使用OpenAPI Codegen防止嵌套模型?

时间:2019-02-19 17:06:16

标签: json typescript swagger openapi codegen

输入JSON

我有大量的JSON。这是它的摘录。

{
  "base.get.v1.Input": {
    "properties": {
      "request": {
        "$ref": "#/components/schemas/base.get.v1.Input.Request"
      },
      "id": {
        "maxLength": 128,
        "type": "string"
      }
    },
    "required": ["id"],
    "type": "object"
  }
}

输出界面

使用OpenApi-generator-cli-3.0.0.jar我得到以下打字稿文件(相对于前面显示的JSON的一部分):

import { BaseGetV1InputRequest } from './baseGetV1InputRequest';


export interface BaseGetV1Input {
    request?: BaseGetV1InputRequest;
    trid: string;
}

所需结果

是否有一种方法可以扩展request对象(和后续对象)(求解器或爆炸对象,无论您喜欢使用什么术语)。我希望最终界面像这样:

import { BaseGetV1InputRequest } from './baseGetV1InputRequest';


export interface BaseGetV1Input {
  request?: {
    entity?: {
      code?: 0,
      id?: string
    },
    procedure?: string,
    search?: {
      type?: "starts" | "contains",
      value?: string
    }
  },
  trid: string
}

经过测试的无效解决方案

我曾尝试使用json-schema-ref-parser解决$ ref自己的问题,但我认为代码生成器在输入JSON中找到properties时会创建一个子模型。

我也尝试过不带胡须模板(别人让我)。但是输出没有改变。

我对OpenAPI还是很陌生,希望您能为我提供帮助。

0 个答案:

没有答案