我正在使用带有spring boot的OpenAPI OpenAPI生成器,并尝试使用以下模式之一:
这是requests.yaml文件中的配置:
...
requestBody:
name: request
required: true
content:
application/json:
schema:
oneOf:
- $ref: 'components.yaml#/Request'
- $ref: 'components.yaml#/ComplexRequest'
...
这是组件中的相关配置。yaml文件:
Request:
allOf:
- $ref: '#/BaseInfo'
- type: object
properties:
should_create:
type: boolean
enum: [ false ]
reference_id:
type: string
required:
- reference_id
ComplexRequest:
allOf:
- $ref: '#/BaseInfo'
- type: object
properties:
should_create:
type: boolean
enum: [ true ]
create_data:
$ref: '#/Reference'
required:
- create_data
BaseInfo:
type: object
properties:
customer_id:
type: string
Reference:
type: object
properties:
propery_1:
type: string
propery_2:
type: string
propery_3:
type: string
出于某种原因,所有这些组件都没有生成,只有这些没有生成。有人能告诉我我在这里做错了什么吗?
如果有人面临这个问题,我希望我能为您节省一些调查时间;至于2022年3月,似乎openapi生成器不支持oneOf
(和anyOf
):https://openapi-generator.tech/docs/roadmap/#short-term
虽然与我的情况不兼容,但您可以尝试这里建议的解决方案:在生成Spring代码时,如何将OpenAPI“oneOf”属性与OpenAPI生成器maven插件一起使用
如何使用将此代码段调整为等效的OpenAPI 2.0版本?
OpenAPI3.0规范规定,没有任何类型的模式将匹配任何数据类型。 没有类型的模式匹配任何数据类型--数字、字符串、对象等等。 因此,对此进行建模的正确方法是下面的Swagger定义,其中没有属性: 但是,每个开放问题Swagger-core#3834,Java值都映射到OpenAPI类型,而不是任意类型。如上所述,这意味着这样的API返回或接受不是OpenAPI的类型是不正确的,例如、、等。
我们不允许寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便用事实和引用来回答。 我正在学习OpenAPI规范。是否有任何工具可以模拟基于YAML格式的OpenAPI定义的API?
我正在尝试在这两种语言中生成客户端代码。使用NSwag CLI的NET Core和TypeScript: 这适用于各种Swagger 2.0 JSON文件,但为OpenApi 3.0 JSON文件生成多个具有完全相同名称的函数。 我的选择。swag文件具有以下内容。NET(TypeScript以类似的方式生成,存在相同的问题): 是否有一种方法可以控制函数名的生成,以便添加一些判别式(类似于依赖于
我有一个Spring启动应用程序,使用springdoc-openapi启用了昂首阔步的留档。由于某种原因,有一个名为/application.wadl的终结点会自动创建,而不会添加任何逻辑。有没有办法禁用wadl终结点?我没有在application.yml文件中添加特定的Wadl配置