在我的spring boot应用程序中,我有通过spring boot应用程序中的header参数验证的endpoint。当前的swagger json如下所示:
js prettyprint-override">// part of current swagger.json
...
"paths": {
"/path1/{param1}": {
"get": {
"parameters": [
{
"name": "param1",
"in": "path",
"type": "string",
"required": true
}
]
}
}
}
...
我想使用springdoc openapi ui
配置添加缺少的参数,这样看起来像这样:
// I want to achieve swagger.json which contains additional parameter
...
"paths": {
"/path1/{param1}": {
"get": {
"parameters": [
{
"name": "param1",
"in": "path",
"type": "string",
"required": true
},
{
"name": "missingParam",
"in": "header",
"type": "string",
"required": true
}
]
}
}
}
...
我试图通过添加到我的应用程序来实现这一点。yml
根据不同路径的公共参数求解
#application.yml
...
components:
parameters:
hiddenParam:
in: header
name: missingParam
required: true
schema:
type: string
paths:
/path1:
get:
parameters:
- $ref: '#/components/parameters/hiddenParam'
但它不起作用。
我的问题是:
最后我决定使用不同的方法。我定义了安全方案,并将其作为授权头全局应用。
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info().title("My App").version("1.0.0"))
// Components section defines Security Scheme "mySecretHeader"
.components(new Components()
.addSecuritySchemes("mySecretHeader", new SecurityScheme()
.type(SecurityScheme.Type.APIKEY)
.in(SecurityScheme.In.HEADER)
.name("missingParam")))
// AddSecurityItem section applies created scheme globally
.addSecurityItem(new SecurityRequirement().addList("mySecretHeader"));
}
干杯
您可以使用OperationCustomizer
添加全局参数,如header,如下所示。这将把你的参数添加到每个服务中
@Configuration
public class SwaggerConfiguration {
@Bean
public OperationCustomizer customGlobalHeaders() {
return (Operation operation, HandlerMethod handlerMethod) -> {
Parameter missingParam1 = new Parameter()
.in(ParameterIn.HEADER.toString())
.schema(new StringSchema())
.name("missingParam1")
.description("header description2")
.required(true);
Parameter missingParam2 = new Parameter()
.in(ParameterIn.HEADER.toString())
.schema(new StringSchema())
.name("missingParam2")
.description("header description2")
.required(true);
operation.addParametersItem(missingParam1);
operation.addParametersItem(missingParam2);
return operation;
};
}
}
**代码:(类名已重命名)** 两个版本中的CheeseDTO YAML: 使用springdoc-openapi-ui 1.3.9,我的yaml是这样生成的: 昂首阔步3注释: OpenAPi生成器maven插件 有没有办法用springdoc-openapi-ui>1.4.0生成?我必须更改我的大摇大摆的注释或更改我的java生成器吗?
当我发布时,我会使用HTTPS请求而不是HTTP,但是swagger原始URL仍然是HTTP,我不知道如何设置它,并且在原始springdoc-openapi-用户界面配置中没有为服务器留档
我已经使用MongoDB启动了一个新的Spring Boot应用程序(2.2.1.RELEASE)。 为了创建一些API文档,我添加了springdoc API: 由于我依赖Spring来处理RESTendpoint的生成,因此我创建了以下简单的存储库: 所以我没有使用的类。 我试图添加一些ProfileRepository中方法的注释,但不会生成任何内容。 : 如何为Spring数据REST存储
OpenAPI3.0规范规定,没有任何类型的模式将匹配任何数据类型。 没有类型的模式匹配任何数据类型--数字、字符串、对象等等。 因此,对此进行建模的正确方法是下面的Swagger定义,其中没有属性: 但是,每个开放问题Swagger-core#3834,Java值都映射到OpenAPI类型,而不是任意类型。如上所述,这意味着这样的API返回或接受不是OpenAPI的类型是不正确的,例如、、等。
我正试图将示例响应值添加到我的springdoc-openapi swagger文档中。 比如用“马克吐温”代替“字符串”等。 我尝试使用这个解决方案-springdoc openapi:如何添加POST请求示例? 我已经在课堂上使用了。 如果我使用这个- @io.swagger.v3.oas.annotations.parameters.RequestBody(内容=@Content(示例={@
所以我有一个spring boot项目,我刚刚添加了OpenAPI Swigger UI。它可以自动生成所有控制器和模型的文档。但我想添加一些额外的配置,比如这里显示的externalDocs。 但由于它是自动生成的,我没有一个扬眉吐气的YAML。我试图通过一个没有运气的豆子添加以下内容。 下面是我的Pom。xml,如果需要的话。 谢谢你的建议。