SpringMvc4集成swagger2
来源:互联网 发布:淘宝客漏洞赚钱 编辑:程序博客网 时间:2024/05/16 05:55
添加Swagger2依赖
在pom.xml中加入Swagger2的依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.5.0</version> </dependency> <!--jackson用于将springfox返回的文档对象转换成JSON字符串--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.0</version> </dependency>
创建Swagger2配置类
package com.leo.ows.util;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@EnableWebMvc@EnableSwagger2@ComponentScan(basePackages = {"com.leo.ows.action"}) @Configurationpublic class MySwaggerConfig { @Bean public Docket petApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() .apis(RequestHandlerSelectors.basePackage("com.leo.ows.action")).build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("服务平台 API").description("").termsOfServiceUrl("http://localhost:8080").version("1.0").build(); }}
配置静态文件访问
<mvc:resources location="classpath:/META-INF/resources/" mapping="swagger-ui.html"/> <mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**"/>
package com.leo.ows.action;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import com.leo.ows.entity.Article;import com.leo.ows.servise.ArticleServise;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;@Api(description = "文章控制器")@Controllerpublic class ArticleAction { @Resource private ArticleServise articleServise; @ApiOperation(value = "增加文章", httpMethod = "POST") @RequestMapping(value = "/articleAdd", method = RequestMethod.POST) public String ArticleAdd(Model model, Article article) { System.out.println(article.getTitle()); articleServise.AddArticle(article); return "index"; }}
启动项目访问即可看到
http://localhost:8080/pftows/swagger-ui.html
常用到的注解有:
Api
ApiModel
ApiModelProperty
ApiOperation
ApiParam
ApiResponse
ApiResponses
ResponseHeader
api标记
Api 标记可以标记一个Controller类做为swagger 文档资源,使用方式:
@Api(value = “/user”, description = “Operations about user”)
与Controller注解并列使用。 属性配置:
属性名称 备注
在SpringMvc中的配置如下:
@Controller@RequestMapping(value = "/api/pet", produces = {APPLICATION_JSON_VALUE, APPLICATION_XML_VALUE})@Api(value = "/pet", description = "Operations about pets")public class PetController {}
ApiOperation标记
ApiOperation每一个url资源的定义,使用方式:
@ApiOperation( value = "Find purchase order by ID", notes = "For valid response try integer IDs with value <= 5 or > 10\. Other values will generated exceptions", response = Order, tags = {"Pet Store"})
与Controller中的方法并列使用。
属性配置:
属性名称 备注
在SpringMvc中的配置如下:
@RequestMapping(value = "/order/{orderId}", method = GET) @ApiOperation( value = "Find purchase order by ID", notes = "For valid response try integer IDs with value <= 5 or > 10\. Other values will generated exceptions", response = Order.class, tags = { "Pet Store" }) public ResponseEntity<Order> getOrderById(@PathVariable("orderId") String orderId) throws NotFoundException { Order order = storeData.get(Long.valueOf(orderId)); if (null != order) { return ok(order); } else { throw new NotFoundException(404, "Order not found"); } }
ApiParam标记
ApiParam请求属性,使用方式:
public ResponseEntity<User> createUser(@RequestBody @ApiParam(value = "Created user object", required = true) User user)
与Controller中的方法并列使用。
属性配置:
在SpringMvc中的配置如下:
public ResponseEntity<Order> getOrderById( @ApiParam(value = "ID of pet that needs to be fetched", allowableValues = "range[1,5]", required = true) @PathVariable("orderId") String orderId)
ApiResponse
ApiResponse:响应配置,使用方式:
@ApiResponse(code = 400, message = “Invalid user supplied”)
与Controller中的方法并列使用。 属性配置:
属性名称 备注
code http的状态码
message 描述
response 默认响应类 Void
reference 参考ApiOperation中配置
responseHeaders 参考 ResponseHeader 属性配置说明
responseContainer 参考ApiOperation中配置
在SpringMvc中的配置如下:
@RequestMapping(value = "/order", method = POST) @ApiOperation(value = "Place an order for a pet", response = Order.class) @ApiResponses({ @ApiResponse(code = 400, message = "Invalid Order") }) public ResponseEntity<String> placeOrder( @ApiParam(value = "order placed for purchasing the pet", required = true) Order order) { storeData.add(order); return ok(""); }
ApiResponses
ApiResponses:响应集配置,使用方式:
@ApiResponses({ @ApiResponse(code = 400, message = “Invalid Order”) })
与Controller中的方法并列使用。 属性配置:
属性名称 备注
value 多个ApiResponse配置
在SpringMvc中的配置如下:
@RequestMapping(value = "/order", method = POST) @ApiOperation(value = "Place an order for a pet", response = Order.class) @ApiResponses({ @ApiResponse(code = 400, message = "Invalid Order") }) public ResponseEntity<String> placeOrder( @ApiParam(value = "order placed for purchasing the pet", required = true) Order order) { storeData.add(order); return ok(""); }
ResponseHeader
响应头设置,使用方法
@ResponseHeader(name="head1",description="response head conf")
与Controller中的方法并列使用。 属性配置:
属性名称 备注
name 响应头名称
description 头描述
response 默认响应类 Void
responseContainer 参考ApiOperation中配置
在SpringMvc中的配置如下:
@ApiModel(description = “群组”)
- SpringMvc4集成swagger2
- springMVC4集成swagger2
- springMVC4.3.7整合 swagger2 2.6.1
- Spring Boot 集成Swagger2
- Springboot集成swagger2
- Spring Boot集成Swagger2
- springboot项目集成Swagger2
- SpringBoot集成Swagger2
- SpringMvc 集成swagger2
- springboot集成swagger2
- jeesite集成swagger2
- springboot集成swagger2
- SpringMVC集成swagger2
- spring boot集成swagger2
- Springboot集成Swagger2
- SpringBoot集成Swagger2
- spring-boot集成Springfox[Swagger2]
- SpringMvc 3分钟集成swagger2
- 【HDU
- 两年java面试问题小结
- Struts2单个文件和多个文件上传
- Training Little Cats -- 矩阵乘法
- 破解MyEclipse2015 stable3.0(亲测可用)
- SpringMvc4集成swagger2
- 遍历hashMap中的所有key和value
- 关于日常书写PC与移动端的几种响应式设计的方式
- Cpp-一个Windows C++的线程类实现
- Android中的动画
- Linux ssh 远程 jps command not found
- 时间控件-时分秒/分秒/年月日
- 比butterKnife更简洁的注解框架
- oracle的物理组件