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

带有定制转换器的Spring靴打破了昂首阔步

贺皓
2023-03-14

我有一个非常简单的Spring Boot应用程序。我通过basicSpringApplication启动它。运行(Startup.class,args)中有一个自定义的@Configuration类,可以覆盖默认的转换器。我决定把招摇过市加入其中,这样我就可以为我们的内部用户群生成更好的文档,因为有大量的endpoint。

当我开始工作时,招摇过市根本不起作用。

我决定开始一个只有一个endpoint的前端scratch Spring Boot,以记录出了什么问题。开箱即用,效果非常好,我只需按一下按钮就能让斯威格跑起来http://localhost:8080/swagger-用户界面。html基本URL。

当我实现扩展了WebMvcConfigurationSupport的自定义@Configuration类时,Swagger不再起作用。

我的配置覆盖了一个方法:

@Configuration
public class StartupConfiguration extends WebMvcConfigurationSupport {

  @Override
  public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(getJsonConverter());
  }
}

就这样。我决定也添加默认转换器,但没有任何运气。然后我清空了类,将其保留为:

@Configuration
public class StartupConfiguration extends WebMvcConfigurationSupport {
}

招摇过市仍然是坏的——如果我完全删除这个类,那么它就可以工作了。

如何保存自定义配置数据并运行Swagger?我还想把它改成http://localhost:8080/swagger/而不是它使用的默认文件,但目前这是一个完全独立的问题。

我发布的《大摇大摆》是这样的:

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

  @Bean
  public Docket getDocket() {
    // ...
    return new Docket(DocumentationType.SWAGGER_2)
      .groupName("Core API")
      .apiInfo(infoBuilder.build())
      .select().paths(PathSelectors.regex("/*"))
      .build();
  }
}

共有1个答案

贺乐意
2023-03-14

覆盖默认资源处理程序对我来说很有效。我在扩展WebMvcConfigurationSupport的配置类中添加了以下内容:

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry
            .addResourceHandler("swagger-ui.html")
            .addResourceLocations("classpath:/META-INF/resources/");
    registry
            .addResourceHandler("/webjars/**")
            .addResourceLocations("classpath:/META-INF/resources/webjars/");
}
 类似资料:
  • 问题内容: 我想知道如何用昂扬的方式记录枚举。 根据JavaDoc 数据类型。请参阅文档以获取受支持的数据类型。如果数据类型是自定义对象,请设置其名称,或不设置任何名称。如果是枚举,请为枚举常量使用’string’和allowableValues。 但是我没有找到一些好的Java示例如何真正使用它,规范在这里。 第一服务 第二服务 输入项 天 输出量 pom.xml 您可以在此处查看结果。 我看到

  • 我正在用Swagger记录我的API,并将以下注释应用于我的所有REST控制器: 然而,我还想将Spring Boot Actuator(/health,/info)提供的endpoint包含在Swagger上(它们也包括在内),但是我似乎找不到一种方法来更改它们的默认描述、标记和标题以及其他Swagger属性。 有没有办法做到这一点?提前谢谢。

  • 数据类型。有关支持的数据类型,请参见文档。如果数据类型是自定义对象,请设置它的名称,或者不设置任何名称。对于枚举,使用'string'和allowableValues作为枚举常量。 但是我没有找到一些好的Java示例如何真正使用它,规范在这里。 你可以在这里看到结果。 我认为是个问题... 你知道吗?

  • 我们正在为我们的Laravel REST API实现开发Swagger文档。几个POSTendpoint将使用CSV作为参数内容类型。 Swagger中是否有一种方法可以让“立即尝试”功能与CSV POST文件上传一起使用? 下面是我们的留档http://api.curvecompass.com/docs/#/ 我们的Laravel POST函数可以正确地与CSVendpoint一起工作,而不是与

  • 问题内容: 我正在尝试使用swagger定义post端点,但是不允许使用该参数: 当我跑步时,我得到这个: 我的规格有什么问题? 问题答案: 您可能正在混合使用OpenAPI / Swagger 2.0和OpenAPI 3.0语法。您的规格似乎是2.0,但是关键字是3.0功能。在2.0中,请求正文被定义为正文参数: 更多信息:描述请求正文

  • 这不是springfox的故事,这是springdoc-openapi的故事。 我当前的依赖项 我的物业 此处请求(localhost:8080/swagger-ui.html)我的服务器响应swagger-petstore示例我已经知道petstore-disable(springdoc.swagger-ui.disable-swagger-default-url=true),但它不起作用 另一