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

springfox招摇过市不起作用

萧麒
2023-03-14

我的pom.xml

<!-- Swagger io for API doc -->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-core</artifactId>
            <version>1.5.3</version>
            <exclusions>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-annotations</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-databind</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.6.1</version>
        </dependency>

招摇过市配置

@Configuration
@EnableWebMvc
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                 .apis(RequestHandlerSelectors.any())              
                  .paths(PathSelectors.any())                          
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("allocation-order-service")
                .description("domain services having persistance layer")
                .version("1.0")
                .build();
    }
}

服务器日志

16-05-18 13:08:59.137       ContainerBackgroundProcessor[StandardEngine[Catalina]]  INFO    o.s.w.s.m.m.a.RequestMappingHandlerMapping  registerHandlerMethod        190    Mapped "{[/${springfox.documentation.swagger.v2.path:/v2/api-docs}],methods=[GET],params=[],headers=[],consumes=[],produces=[application/json || application/hal+json],custom=[]}" onto public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)
16-05-18 13:08:59.141       ContainerBackgroundProcessor[StandardEngine[Catalina]]  INFO    o.s.w.s.m.m.a.RequestMappingHandlerMapping  registerHandlerMethod        190    Mapped "{[/swagger-resources/configuration/security],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto org.springframework.http.ResponseEntity<springfox.documentation.swagger.web.SecurityConfiguration> springfox.documentation.swagger.web.ApiResourceController.securityConfiguration()
16-05-18 13:08:59.143       ContainerBackgroundProcessor[StandardEngine[Catalina]]  INFO    o.s.w.s.m.m.a.RequestMappingHandlerMapping  registerHandlerMethod        190    Mapped "{[/swagger-resources/configuration/ui],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto org.springframework.http.ResponseEntity<springfox.documentation.swagger.web.UiConfiguration> springfox.documentation.swagger.web.ApiResourceController.uiConfiguration()
16-05-18 13:08:59.145       ContainerBackgroundProcessor[StandardEngine[Catalina]]  INFO    o.s.w.s.m.m.a.RequestMappingHandlerMapping  registerHandlerMethod        190    Mapped "{[/swagger-resources],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto org.springframework.http.ResponseEntity<java.util.List<springfox.documentation.swagger.web.SwaggerResource>> springfox.documentation.swagger.web.ApiResourceController.swaggerResources()

它说映射:/${springfox.documentation.swagger.v2.path:/v2/api-docs}

但这些都不起作用(404):

http://localhost:8080/allocation-order-web/v2/api-docs
http://localhost:8080/allocation-order-web/${springfox.documentation.swagger.v2.path:/v2/api-docs}

如果我使用sping-fox较低版本,那么我将在我的日志中得到它已映射{[/v2/api-docs}],方法=[GET]。但是,我看不到在那里生成的任何json。

共有2个答案

彭展
2023-03-14

好吧,只是这样行不通

http://localhost:8080/allocation-order-web/v2/api-docs

您还需要通过group attr,请尝试此方法

http://localhost:8080/allocation-order-web/v2/api-docs?group=public-api
华建同
2023-03-14

您可能需要指定您的主应用程序上下文路径以及swagger留档路径(您应该更好地在自定义属性文件中或application.properties下定义它们):

@Configuration
@EnableWebMvc
@EnableSwagger2
@PropertySource("classpath:swagger-v2.properties")
public class SwaggerConfig {
    //...
}

大摇大摆的v2。属性应如下所示:

server.contextPath=/allocation-order-web/
springfox.documentation.swagger.v2.path=/api-docs

然后应通过以下方式获取文件:

http://localhost:8080/allocation-订购web/api文档

 类似资料:
  • 我对使用SpringBoot和Springfox-boot-starter的swagger文档有一个问题。 我使用java.time.Instant java.util.Optio包裹 有没有办法让这个工作与可选的?感谢任何建议! Spring启动版本: Springfox-boot-starter版本

  • 我正在使用Swagger注释和SpringFox为我的REST API(使用Sprint Boot构建)生成Swagger规范。我正在用将返回的代码注释每个方法。例如: 然而,有些东西(我假设SpringFox)正在向每个API调用添加一个200响应代码,而不管它是否已定义。我知道我可以通过在每个方法中添加注释来删除此项,但a)这似乎是@ApiResponse定义的不必要重复,b)某些方法可能返回

  • 我在Spring Boot 2项目中添加了Springfox Swagger 2.8.0,在应用程序启动期间,遇到以下问题: 这个问题的原因是什么?如何解决它?

  • 我试图在我的微服务项目中生成一个单独的招摇过市,在Api网关中将所有服务招摇过市聚合成一个单独的招摇过市。为了实现这一点,我将遵循下一个教程https://objectpartners.com/2017/09/28/aggregate-services-into-a-single-swagger 这里的问题是,当我尝试设置绝对URL时,我收到的输出是未能加载API定义。未定义的http://loc

  • pom.xml Spring Security配置 application-local.yml 我得到这个结果。 无法呈现此定义提供的定义未指定有效的版本字段。 请注明有效的或版本字段。支持的版本字段是swagger: 2.0和与openapi: 3.0. n匹配的版本字段(例如,openapi: 3.0.0)。

  • 已安装Java版本8更新271。 从这个链接下载了swagger-codemen-cli版本2.4.17 当我运行命令生成时,我得到以下问题 我必须使用这个JSON,但我也测试了这个样本JSON 对于2.4.7 rc1,我得到以下错误: 试着一步一步地找到答案。没找到。 任何指针都是有用的 尚卡尔