Regarding Swagger integration in Spring MVC:
Swagger does not display GET/PUT/POST documentation for @RequestMapping
In my Spring MVC Rest webservice application, I have an input controller and Student Controller. I just configured Swagger to create the Rest API documentation. Link: http://java.dzone.com/articles/how-configure-swagger-generate
Question However, Swagger only displays the path at the class level, and I think it is not wven displaying the class level @RequestMapping . Method level mappings are ignored. Any reason why ?
@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<Student> updateStudentInfo(@RequestBody Student student) { //code }
Swagger Configuration:
@Configuration @EnableSwagger public class SwaggerConfiguration { private SpringSwaggerConfig swaggerConfig; @Autowired public void setSpringSwaggerConfig(SpringSwaggerConfig swaggerConfig) { this.swaggerConfig = swaggerConfig; } @Bean
Output:
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" } }
Update:
you will also need the following configuration in the Spring config configuration file, as indicated at https://github.com/martypitt/swagger-springmvc
<context:component-scan base-package="com.mangofactory.swagger.controllers"/> <context:component-scan base-package="com.mangofactory.swagger.configuration"/> <mvc:resources mapping="*.html" location="/, classpath:/swagger-ui"/> <mvc:default-servlet-handler/>