当前位置: 首页 > 知识库问答 >
问题:

无法在Open API UI中显示自定义标头

徐飞龙
2023-03-14

使用OpenAPI3时如何设置自定义头?我正在使用SpringBoot springdoc openapi ui示例。在本例中,我希望在请求中传递不同的头。以下配置未显示选择客户标题的选项。

我还需要换什么?

@Bean
public OpenAPI customOpenAPI(@Value("${springdoc.version}") String appVersion) {
 return new OpenAPI()
      .components(new Components().addSecuritySchemes("basicScheme", new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("basic"))
      .addParameters("myHeader1", new Parameter().in("header").schema(new StringSchema()).name("myHeader1")).addHeaders("myHeader2", new Header().description("myHeader2 header").schema(new StringSchema())))
      .info(new Info()
      .title("Petstore API")
      .version(appVersion)
      .description("This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.")
      .termsOfService("http://swagger.io/terms/")
      .license(new License().name("Apache 2.0").url("http://springdoc.org")));
}

共有1个答案

张权
2023-03-14

您可以使用以下注释@Parameter(in=ParameterIn.Header)将自定义标题添加到操作文档中。

例如:

@RestController
@RequestMapping("/api")
@Tag(name = "contact", description = "the Contact API")
public class HelloController {

@Operation(summary = "Find Contacts by name", description = "Name search by %name% format", tags = {"contact"})
@ApiResponses(value = {
        @ApiResponse(responseCode = "200", description = "successful operation", content = @Content(array = @ArraySchema(schema = @Schema(implementation = PersonDTO.class))))})
@Parameter(in = ParameterIn.HEADER, description = "Custom Header To be Pass", name = "Accept-version"
        , content = @Content(schema = @Schema(type = "string", defaultValue = "v1", allowableValues = {"v1", "v2"}, implementation = PersonDTO.class)))
@GetMapping(value = "/contacts", /*produces = { "application/json", "application/xml" },*/ headers = {"Accept-version=v10"})
public ResponseEntity<List<PersonDTO>> findAll(
        @Parameter(description = "Page number, default is 1") @RequestParam(value = "page", defaultValue = "1") int pageNumber,
        @Parameter(description = "Name of the contact for search.") @RequestParam(required = false) String name) {

    return null;
}}
 类似资料:
  • 我正在尝试prestashop 1.7,但在创建自定义模块时遇到了一个问题。我在“modules”文件夹中创建了一个文件夹“mymodule”,正如文档中所示,我创建了一个简单的mymodule。其中的php文件: 然后我进入“模块”下的管理页面- 我犯了什么错误? 谢谢 泽维尔

  • 我使用Wordpress Rest API将内容从WordPres斯网站导入到PHP应用程序中。这并不复杂,只是一个包含帖子列表和个人帖子页面的主页。 我在API响应中添加了一些字段,特别是获取帖子中插入的第一张图片的url的字段。 这是该部分的代码: 当我在主页中列出帖子时,它可以正常工作,但在单个帖子页面中,字段为空。对此,我唯一能给出的解释是,我有一个用于单个帖子的自定义endpoint:

  • 您好,我正在使用。 }下面是各自的xml: 在适配器获取视图:公共视图getView(int位置,视图转换视图,ViewGroup父){ ImageLoader。从这里开始的Java 在从服务器加载映像之前,如何在中显示临时映像。

  • 我在jsp文件“无法加载pkg.Handler类”中遇到了错误。我不明白问题出在哪里,一切似乎都很好。 下面是我的标签库描述符(tLD)文件 Handler.java文件 下面是jsp文件 以下是项目结构 项目结构截图

  • 奇怪的是,自定义图标在三星Mini(jelly bean)和Nexus 4(API 27)模拟器上显示正确,但在三星A6(Oreo)和华为Honory Lite 9(Oreo)设备上却显示不正确,在这些设备上,我看到了默认的绿色背景白色droid图标。 通知始终显示,但在某些设备上不使用自定义图标。 我尝试在AssetStudio中实现它,并且使用和不使用Notification Builder实

  • 我正在使用Bootstrap的DateTimePicker,我正在加载带有多行的视图,每个人都有一个datetimepicker,我正在从数据库中预加载带有时间戳的值,例如datetime: 这工作得很好,但是我想以格式显示DD/MM/YYYY HH: mm: ss我把它放在格式选项上,如下所示: 但这不起作用,这给我加载了一个空字段。然后,我尝试使用data属性,将其添加到HTML标记中: 但是