我正在使用Swagger.io Openapi V3.0
生成的openapi.yaml文件将响应内容媒体类型默认声明为*/*
。我希望默认响应内容媒体类型为application/json
我知道你可以通过以下操作手动更改每个响应的媒体类型:
@ApiResponse(description = "test"
, content = @Content(
mediaType = "application/json",
schema = @Schema(
implementation = Test.class
)
)
)
但这种方法不是最佳的,因为有许多React需要修改。
有办法改变mapstruct/openapi默认的媒体类型吗?
2条答案
按热度按时间bybem2ql1#
在Swagger(OpenAPI)3.0版中,响应内容的默认媒体类型是 /,这意味着它可以表示任何媒体类型。但是,如果您想为所有响应设置默认响应媒体类型为application/json,而不为每个响应显式指定它,则可以通过在OpenAPI规范中定义全局响应来实现这一点。
以下是如何在OpenAPI YAML文件中执行此操作:
通过在端点的responses部分的content部分下定义application/json媒体类型,可以将其作为200响应的默认媒体类型。您可以根据需要对其他响应代码执行此操作。
此方法允许您为特定响应代码设置默认媒体类型,而无需为每个端点单独指定。
希望我能帮上忙。
kxeu7u2r2#
编辑
虽然swagger-core目前没有这个特性,但是另一种方法是使用JAX-RS并在类级别上定义@Produces(“your/mediaType”)。参见:https://docs.oracle.com/cd/E19798-01/821-1841/gipzh/index.html
由于openapi/swagger-core使用JAX-RS注解,而不是相反,因此这仍然适用于生成openapi.yaml
老帖子
我正在寻找的特定功能已被要求在OpenAPI ca中实现。2015年https://github.com/OAI/OpenAPI-Specification/issues/521
这是描述该功能需求的线程之一。看起来该特性的实现可能会在OpenAPI v4.0中实现,但尚未确认