java - OpenAPI 自定义生成器 - 如何防止在 OpenApi 中生成“AllOf”类
问题描述
我正在构建一个自定义生成器来为 Angular 应用程序生成 TypeScript/Angular 模型。作为起点,我从https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen 复制了代码。爪哇
我试图弄清楚如何防止生成器生成“AllOf”以及从“AllOf”模型扩展模型。
生成器已经生成了一个包含它需要的一切的模型,而无需从 *AllOf 扩展。
我已经能够修改 .java 文件以防止它导入带有“AllOf”的类,但是我找不到任何文档或示例来限制从以“AllOf”结尾的类进行扩展
我错过了什么吗?似乎应该有一种方法告诉生成器不要导入或创建“AllOf”类。
// what I get:
import { ValidatePassword } from './validate-password.model';
export interface ChangePassword extends ChangePasswordAllOf, ValidatePassword {
...
}
// what I want
import { ValidatePasswordModel } from './validate-password.model';
export interface ChangePassword extends ValidatePassword {
...
}
这是我的modelGeneric.mustache
模板:
export interface {{classname}}{{#allOf}}{{#-first}} extends {{/-first}}{{{.}}}{{^-last}}, {{/-last}}{{/allOf}} { {{>modelGenericAdditionalProperties}}
{{#vars}}
{{#description}}
/**
* {{{.}}}
*/
{{/description}}
{{#isReadOnly}}readonly {{/isReadOnly}}{{{name}}}{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}};
{{/vars}}
}{{>modelGenericEnums}}
这是相关的架构示例:
...
"ChangePassword": {
"allOf": [
{
"$ref": "#/components/schemas/ValidatePassword"
},
{
"type": "object",
"additionalProperties": false,
"required": [
"OldPassword"
],
"properties": {
"OldPassword": {
"title": "Current password",
"type": "string",
"minLength": 1
}
}
}
]
},
...
解决方案
据此:https ://github.com/OpenAPITools/openapi-generator/issues/3100
你能试试:
"ChangePassword": {
"type": "object",
"additionalProperties": false,
"required": [
"OldPassword"
],
"properties": {
"OldPassword": {
"title": "Current password",
"type": "string",
"minLength": 1
}
},
"allOf": [{
"$ref": "#/components/schemas/ValidatePassword"
}]
}
推荐阅读
- r - read.csv 在导入数据时更改字符
- r - 结合 Grep 和 For 循环构造矩阵 (R)
- javascript - Kendo js Grid使标题单元格过滤器反映菜单过滤器
- swagger - 创建 swagger 示例模型 asp.net core web api
- python - Keras model.predict 总是预测 1
- r - 具有多个标签的 One-Hot 编码功能
- sql - 为什么将 SQL Real 转换为 Numeric 时比例会略有增加?
- sql - 尝试求和事件之间的总时间 WHERE 当前时间戳需要从下一个中减去
- .net - 在不影响错误/故障的情况下进行遥测采样
- ruby-on-rails-3 - 我想从我的 f.input (form_for) 更改我的复选框 radio_button 的默认标签 YES NO