使用 Springfox 更改 Swagger UI 的标题和描述

问题描述 投票:0回答:2

我正在构建一个 Spring Boot 应用程序,并使用 Springfox Swagger UI 使用 Swagger UI 对其进行记录。我已经记录了所有内容,但想要自定义标题和描述,但不知道如何进行。例如,在此图中:https://springfox.github.io/springfox/docs/current/images/springfox-swagger-ui.png标题是“Springfox petstore API”,描述是Lorem Ipsum。但在我的 Swagger UI 中,标题和描述都写着“API 文档”。我尝试过使用@SwaggerDefinition注释,但它似乎没有做任何事情。

spring-boot swagger-ui springfox
2个回答
17
投票

我建议您使用swagger编辑器,然后您可以使用顶部菜单中的“生成服务器”选项从API文档自动生成Spring Boot服务器。对于第一次生成 API 来说真的很棒。

如果您想从 YAML 设置,则必须在 info 部分提供此字段:

info:
  version: "1.0.0"
  title: My API title
  description: "Awesome description"

在代码中,检查 Swagger 编辑器生成的类并将其与您的代码进行比较。您可以设置描述和标题,在 ApiInfo Builder 对象上设置相应的属性,该对象位于 SwaggerDocumentationConfig 类内部。

这里有代码:

@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2017-10-05T14:03:51.916-03:00")

@EnableSwagger2
@Configuration
public class SwaggerDocumentationConfig {

    ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("My API Title")
            .description("Awesome description")
            .license("Apache 2.0")
            .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
            .termsOfServiceUrl("")
            .version("1.0.0")
            .contact(new Contact("", "", "[email protected]"))
            .build();
    }

    @Bean
    public Docket customImplementation() {
        return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.mypackage.api"))
            .build()
            .apiInfo(apiInfo());
    }
}

如果这些对您来说都没有意义,请向我展示更多一点您的代码,以了解您如何使用 Springfox,我可以更好地帮助您。

致以诚挚的问候!


0
投票

这可能是一种更干净、简单的方法,而且很有效

@OpenAPIDefinition(info = @Info(
        title = "My API definition",
        description = "All API definitions bla bla bla....",
        version = "1.0.0"))
public class MyController {}

© www.soinside.com 2019 - 2024. All rights reserved.