[英]Swagger with Spring Rest : api-docs does not generate the json
我正在尝试将swagger2与我的Spring MVC集成。 但是,当我尝试访问http:// myhost / myapp / api-docs时 ,无法获取json。 您能否帮助我找出我的代码出了什么问题。
我的Pom.xml(与swagger相关)
<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。
如果有人可以对此表示感谢,我将非常感激。
谢谢,史密斯
正确的网址是http:// localhost:8080 / MyApp / v2 / api-docs
您还可以访问swagger ui http:// localhost:8080 / MyApp / swagger-ui.html
在SwaggerConfig
类的顶部使用@EnableSwagger2
批注。
在您的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" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.