我正在尝试将 swagger2 与我的 Spring MVC 集成。但是当我尝试访问http://myhost/myapp/api-docs时,我无法获取 json。你能帮我弄清楚我的代码出了什么问题吗?
我的 Pom.xml(与招摇相关)
<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>
我的 web.xml
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
我的 mvc-dispatcher.xml
<context:component-scan base-package="com.smith.spring.ws" />
<context:component-scan base-package="com.smith.spring.swagger" />
<mvc:annotation-driven/>
<mvc:resources location="classpath:/META-INF/resources/swagger-ui.html" mapping="swagger-ui.html" />
<mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**" />
SwaggerConfig.java
public class SwaggerConfig{
@Autowired
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.groupName("person")
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfo(
"My Project's REST API",
"This is a description of your API.",
"API TOS",
"url",
"me@wherever.com",
"API License",
"API License URL");
return apiInfo;
}
}
我的控制器
@RestController
@RequestMapping("/person")
@Api(value="Person Rest Service")
public class PersonController {
@RequestMapping(value="/getPerson",method=RequestMethod.GET)
@ApiOperation(value = "Fetch a person")
public @ResponseBody Person getPersons() {
Person person = new Person();
person.setFirstname("fname");
person.setLastname("lname");
person.setAge(37);
person.setDepartment("dept");
return person;
}
}
我不确定我是否在这里遗漏了什么。但是当我尝试访问http://localhost:8080/MyApp/api-docs时,我看不到 json。
如果有人能对此有所了解,我将不胜感激。
谢谢,史密斯