簡體   English   中英

Swagger 未顯示任何控制器或端點

[英]Swagger is not showing any controllers or endpoints

Swagger Api 文檔圖像

我正在我的 springboot 項目中添加/集成 swagger。 我嘗試了不同的東西,但它沒有得到修復。 現在顯示的只是沒有任何端點或控制器的白頁,只是一個帶有招搖標志的空白頁面。

招搖網址是:http://localhost:8080/swagger-ui.html

我的招搖配置如下:

package com.app;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication(scanBasePackages = {"com.app.controller"})
public class StoreApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        try {

            SpringApplication.run(StoreApplication.class, args);

        }catch (Throwable throwable){
            System.out.println(throwable.toString());
            throwable.printStackTrace();
        }
    }
}

這是我的控制器代碼。

我的控制器

package com.app.controller;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@CrossOrigin
@RestController
public class CustomersController {

    @RequestMapping(value = "/customers", method = RequestMethod.GET)
    ResponseEntity<?> getAllCustomers(){


        return ResponseEntity.status(HttpStatus.OK).body(null);
    }

    @RequestMapping(value = "/customer", method = RequestMethod.POST)
    ResponseEntity<?> createCustomer(){


        return ResponseEntity.status(HttpStatus.OK).body(null);
    }

}

這是主要課程

主班

package com.app;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication(scanBasePackages = {"com.app.controller"})
public class StoreApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        try {

            SpringApplication.run(StoreApplication.class, args);

        }catch (Throwable throwable){
            System.out.println(throwable.toString());
            throwable.printStackTrace();
        }
    }
}

這是我的應用配置文件

應用配置

package com.app.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class AppConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry){

      //  registry.addRedirectViewController("/docApi/v2/api-docs","/v2/api-docs");
        registry.addViewController("/welcome").setViewName("Welcome");
    }


}

首先,嘗試像這樣添加招搖配置:

@EnableSwagger2
@Configuration
public class SwaggerConfig {


    @Bean
    public Docket productApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.app"))
                .paths(PathSelectors.any())
                .build();
    }

}

然后在控制器中添加一些注釋,如下所示:

package com.app.controller;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@CrossOrigin
@RestController
@Api
public class CustomersController {

    @RequestMapping(value = "/customers", method = RequestMethod.GET)
    @ApiOperation(value = "get all", tags = "customer")
    ResponseEntity<?> getAllCustomers(){


        return ResponseEntity.status(HttpStatus.OK).body(null);
    }

    @RequestMapping(value = "/customer", method = RequestMethod.POST)
    @ApiOperation(value = "create", tags = "customer")
    ResponseEntity<?> createCustomer(){


        return ResponseEntity.status(HttpStatus.OK).body(null);
    }

}

希望這能解決您的問題。 然后嘗試訪問url:http: http://127.0.0.1:8080/swagger-ui/index.html :8080/swagger-ui/index.html,注意不是url http://localhost:8080/swagger-ui.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM