Swagger for Spring MVC项目

关于在Spring MVC中集成Swagger:

Swagger没有显示@RequestMappingGET/PUT/POST文档

在我的Spring MVC Rest webservice应用程序中,我有一个Login控制器和一个Student Controller。 我只是配置了Swagger来生成Rest API文档。 参考: http : //java.dzone.com/articles/how-configure-swagger-generate

:然而,Swagger只显示类级路径,我猜它不会显示类级别@RequestMapping 。 , 方法级别映射被忽略。 有什么理由吗?

 @Controller @RequestMapping(value = "/login") public class LoginController { @RestController @RequestMapping(value = "/students/") public class StudentController { @RequestMapping(value = "{departmentID}", method = RequestMethod.GET) public MyResult getStudents(@PathVariable String departmentID) { // code } @RequestMapping(value = "student", method = RequestMethod.GET) public MyResult getStudentInfo( @RequestParam(value = "studentID") String studentID, @RequestParam(value = "studentName") String studentName) { //code } @RequestMapping(value = "student", method = RequestMethod.POST) public ResponseEntity updateStudentInfo(@RequestBody Student student) { //code } 

Swagger配置:

 @Configuration @EnableSwagger public class SwaggerConfiguration { private SpringSwaggerConfig swaggerConfig; @Autowired public void setSpringSwaggerConfig(SpringSwaggerConfig swaggerConfig) { this.swaggerConfig = swaggerConfig; } @Bean // Don't forget the @Bean annotation public SwaggerSpringMvcPlugin customImplementation() { return new SwaggerSpringMvcPlugin(this.swaggerConfig).apiInfo( apiInfo()).includePatterns("/.*"); } private ApiInfo apiInfo() { ApiInfo apiInfo = new ApiInfo("my API", "API for my app", "", "contact@localhost.com", "License type", "something like a License URL"); return apiInfo; } 

输出:

 http://localhost:8080/studentapplication/api-docs { apiVersion: "1.0", swaggerVersion: "1.2", apis: [ { path: "/default/login-controller", description: "Login Controller" }, { path: "/default/student-controller", description: "Student Controller" } ], info: { title: "Student API", description: "API for Student", termsOfServiceUrl: "StudentApp API terms of service", contact: "abc@xyz.com", license: "sometext", licenseUrl: "License URL" } } 

更新:

你还需要在spring config XML文件中使用以下配置,如https://github.com/martypitt/swagger-springmvc中所述

          

无论现在看到什么输出是好的,我们都不会在这个JSON输出中看到swagger UI和GET/POST/PUT方法级别映射。 所以没关系。 它仅显示类级别路径。

要查看具有GET/POST/PUT方法级别映射的实际Swagger UI以及URL,我们需要下载SwaggerUI ,可在此处获取: https : //github.com/swagger-api/swagger-ui

然后导航到此index.html文件: swagger-ui-master\swagger-ui-master\dist\index.html此处,编辑源应用程序api-docs URL的JSON URL:

即:

  $(function () { window.swaggerUi = new SwaggerUi({ url: "studentapplication/api-docs", dom_id: "swagger-ui-container", supportedSubmitMethods: ['get', 'post', 'put', 'delete'], 

现在你看到了一切!

我只有一步之遥……