我正在將Springfox 2.2.2集成到我的Spring MVC項目中,但沒有生成api-docs,因爲我應該使用它。以下有關我的配置的一些信息。springfox 2.2.2沒有生成api文檔
我提供以下相關性(具有額外的庫作爲fasterxml,webjars,彈簧的正確版本被用於等一起)
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
的Springfox被配置如下:
package com.exemplarypackage.config;
@Configuration
@EnableSwagger2
@EnableWebMvc
@ComponentScan("com.exemplarypackage.controller")
public class SwaggerConfig extends WebMvcConfigurerAdapter{
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfo(
"My Project's REST API",
"This is a description of your API.",
"API TOS",
"url",
"[email protected]",
"API License",
"API License URL");
return apiInfo;
}
@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/");
}
}
的示例性控制器如下所示:
package com.exemplarypackage.controller;
@Api(value = "test class for springfox")
@Controller
public class TestController {
@ApiOperation(value = "Returns test details")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successful retrieval", response = Test.class),
@ApiResponse(code = 404, message = "Test does not exist"),
@ApiResponse(code = 500, message = "Internal server error")}
)
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String test(Locale locale, Model model) {
logger.info("TEST");
return "test";
}
}
通過以上設置,當我執行url:localserver:8080/myApp/swagger-ui時,幾乎沒有任何內容顯示,但沒有錯誤消息。
然後,我在src/main/resources/META-INF中添加了我在spring-fox-swagger-ui-2.2.2.jar中找到的內容(我將它解壓並粘貼到給定文件夾中)。現在,當我到localserver:8080/myApp/swagger-ui時,所有綠色圖形都顯示出來,但沒有api文檔。我注意到在服務器日誌中,swagger-ui查找swagger-resources端點,但是它會得到404。當我瀏覽服務器日誌時,我發現沒有這樣的端點被創建爲:swagger-resources,v2/api-docs等等。但是,我注意到這些類被過濾以獲得swagger註釋......有一個springfox。在META-INF/resources/webjars/springfox-swagger-ui文件夾中包含了swagger-resorces端點的js文件 - 可能它應該切換到不同的名稱?
我不知道如何使它工作......我應該聲明那些終結點或應該自動創建?也許我只是想念一些小小的東西,但我在最後幾天與這個問題鬥爭,並不知道還應該配置什麼來使其工作。
當你導航到'localserver:8080/myApp/v2/api-docs'時,你會得到什麼? –
這是404答案:/ – gromajus
你的servlet配置是什麼樣的? –