我正在尝试将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。
如果有人能够对此有所了解,我将非常感激。
谢谢,史密斯
答案 0 :(得分:2)
更正网址为http://localhost:8080/MyApp/v2/api-docs
您还可以访问swagger ui http://localhost:8080/MyApp/swagger-ui.html
在@EnableSwagger2
课程的顶部使用SwaggerConfig
注释。
在mvc-dispatcher.xml
文件中添加<bean name="swaggerConfig" class="com.smith.spring.swagger.SwaggerConfig"/>
也不确定是否有必要,但将<mvc:resources location="classpath:/META-INF/resources/swagger-ui.html" mapping="swagger-ui.html" />
更改为<mvc:resources location="classpath:/META-INF/resources/" mapping="swagger-ui.html" />