- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个具有以下功能的示例 SpringBoot API:
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Schema;
public class ContainerClass {
@ArraySchema(
arraySchema = @Schema(discriminatorProperty = "classType"),
schema = @Schema(implementation = ParentClass.class)
)
public List<ParentClass> elements;
// + Getter/Setter
}
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
property = "classType",
defaultImpl = ParentClass.class,
visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = ChildA.class, name = "CHILD_A"),
@JsonSubTypes.Type(value = ChildB.class, name = "CHILD_B")})
@Schema(
description = "Parent description",
discriminatorProperty = "classType",
discriminatorMapping = {
@DiscriminatorMapping(value = "CHILD_A", schema = ChildA.class),
@DiscriminatorMapping(value = "CHILD_B", schema = ChildB.class)
}
)
public abstract class ParentClass {
public String classType;
// + Getter/Setter
}
@io.swagger.v3.oas.annotations.media.Schema(description = " Child A", allOf = ParentClass.class)
public class ChildA extends ParentClass{
}
@io.swagger.v3.oas.annotations.media.Schema(description = " Child B", allOf = ParentClass.class)
public class ChildB extends ParentClass{
}
当我运行 springdoc-openapi-maven-plugin 时,我得到以下合约文件。
openapi: 3.0.1
info:
title: OpenAPI definition
version: v0
servers:
- url: http://localhost:8080
description: Generated server url
paths:
/container:
get:
tags:
- hello-controller
operationId: listElements
responses:
"200":
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ContainerClass'
components:
schemas:
ChildA:
type: object
description: ' Child A'
allOf:
- $ref: '#/components/schemas/ParentClass'
ChildB:
type: object
description: ' Child B'
allOf:
- $ref: '#/components/schemas/ParentClass'
ContainerClass:
type: object
properties:
elements:
type: array
description: array schema description
items:
oneOf:
- $ref: '#/components/schemas/ChildA'
- $ref: '#/components/schemas/ChildB'
ParentClass:
type: object
properties:
classType:
type: string
description: Parent description
discriminator:
propertyName: classType
mapping:
CHILD_A: '#/components/schemas/ChildA'
CHILD_B: '#/components/schemas/ChildB'
实际上,在我的上下文中,为了与现有消费者没有任何重大变化,我需要
项目 房产在
ContainerClass 包含
的架构鉴别器 包含在
中的部分父级模式,像这样:
ContainerClass:
type: object
properties:
elements:
type: array
description: array schema description
items:
discriminator:
propertyName: classType
mapping:
CHILD_A: '#/components/schemas/ChildA'
CHILD_B: '#/components/schemas/ChildB'
oneOf:
- $ref: '#/components/schemas/ChildA'
- $ref: '#/components/schemas/ChildB'
当我尝试在注释中设置属性时,我无法做到这一点。当我调试
的代码时io.swagger.v3.core.jackson.ModelResolver ,我没有设法找到一种方法来做到这一点。
最佳答案
这是默认的生成结构。由 swagger-api 直接处理(而不是 springdoc-openapi。
生成的 OpenAPI 描述看起来很正确。
使用 springdoc-openapi,您可以定义一个 OpenApiCustomiser Bean,您可以在其中更改在 OpenAPI 级别定义的 components 元素的元素:
关于spring-boot - OpenApi - 有没有办法在使用 springdoc-openapi-maven-plugin 生成的契约(Contract)中使用带有鉴别器部分的组合模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62631579/
我正在尝试用 Springdoc 替换手动维护的 swagger 文件。目前,我们使用 ReDoc渲染文件,因为他们支持 discriminator . 是否有直接的方法来替换/取代嵌入式 swagg
我已经在我的 Java 项目的 pom 文件中使用以下工件安装了 swagger-ui: org.springdoc springdoc-openapi-ui
有两种方法可以将 OpenAPI 3 添加到 Spring Boot 项目。 > org.springdoc springdoc-openapi-ui https://www.dariawan.com
我正在尝试为我的 API 中的所有端点添加一个默认错误模型,以获取一些错误代码。 我通过阅读以下问题找到了部分解决方案: Springfox -> Springdoc: How to expose a
我正在使用 Springdoc (1.4.8) 来记录我们的 Rest API。 99% 的调用使用 OAuth2 Bearer Token 进行保护,所以我想像这样默认添加它: new OpenAP
我正在使用具有以下依赖项的 SpringBoot org.springdoc springdoc-openapi-ui 1.5.12
我正在使用 SpringDoc 并尝试以编程方式向 OpenApi 添加模式,但没有成功。 @Bean public OpenAPI customOpenAPI() { Schema
我使用 springdoc-openapi 来记录我的 REST API。错误对象返回错误,该对象具有 errorCode 和 message。我使用 @Schema 注释来记录示例。但是,对于不同的
我有一个 Spring Boot (kotlin) 项目,我使用 springdoc-openapi 来生成 OpenApi 3 规范。我的数据模型如下所示: open class Animal da
我正在尝试使用gradle依赖项来使用springdoc-openapi-ui。 马文 org.springdoc springdoc-openapi-ui 1
目录 POM yml 配置自定义的 OpenAPI 规范 拦截器去除 swagger 的接口验证 模型 Controller 配置 常用注解
我有一个 Spring boot Gradle 项目,我想获取它的 OpenAPI 规范 YAML 文件。 据我了解官方swagger-core不支持 Spring boot 项目,所以我找到了 sp
如何更改 swagger-ui 的布局? 对于布局选项,您可以使用 swagger-ui 配置选项。这是什么意思? 例如: springdoc.swagger-ui.layout=BaseLayout
我正在尝试在多模块 gradle 项目中使用 Springdoc,但我无法使其工作。 有人已经做过类似的事情了吗? 我的 Gradle 项目结构如下所示: 我的项目 申请 模块1 接口(interfa
网络上没有关于如何使用 springdocs-openapi 库 (1.5.7) 获得以下输出的好例子。我希望获得以下输出: [ "A", "B", "C" ] 这是基于提供的示例的代码。 @Op
网络上没有关于如何使用 springdocs-openapi 库 (1.5.7) 获得以下输出的好例子。我希望获得以下输出: [ "A", "B", "C" ] 这是基于提供的示例的代码。 @Op
我有以下 Controller 代码: public abstract class BaseController { @Operation @GetMapping
我有一个现有的 Spring 4 API,并已成功集成 springdoc-openapi 以在 JSON/YAML 中生成 OpenAPI 3 规范,还使用 springdoc-openapi
我有以下SecurityScheme使用 springdoc-openapi 为 java SpringBoot RESTful 应用程序定义: @Bean public OpenAP
我正在尝试使用 spring boot 和 GraalVM Native Image 创建一个示例应用程序,但是一旦我添加了 Springdoc 的依赖项,生成的可执行文件就不再工作了,原因如下:
我是一名优秀的程序员,十分优秀!