<!-- swagger2 引入 --> <dependency> <groupId>com.spring4all</groupId> <artifactId>spring-boot-starter-swagger</artifactId> <version>1.5.1.RELEASE</version> </dependency>
package com.tingcream.springmybatis.configuration; import java.util.ArrayList; import java.util.List; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * swagger2的配置类 * @author jelly */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket docket(){ Parameter parameter= new ParameterBuilder().name("Authorization").description("token头") .modelRef(new ModelRef("string")) .parameterType("header").required(false) .defaultValue("").build(); List<Parameter> pars = new ArrayList<Parameter>(); pars.add(parameter); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() // .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //这里采用包含注解的方式来确定要显示的接口 .apis(RequestHandlerSelectors.basePackage("com.tingcream.springmybatis")) //配置Swagger2包扫描路径 .paths(PathSelectors.any()) .build() .globalOperationParameters(pars);//把全局 的http请求消息头加上 } @Bean public ApiInfo apiInfo(){ return new ApiInfoBuilder().title("springmybatis项目api文档") .description("这是一些描述信息") .contact(new Contact("张三", "http://www.tingcream.com", "zhangsan@123.com")) .version("1.0") .build(); } }
package com.tingcream.springmybatis.sw.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.tingcream.springmybatis.common.RetMsg; import com.tingcream.springmybatis.sw.model.Goods; import com.tingcream.springmybatis.util.RandomUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @Api(tags="商品管理") @RequestMapping("/goods") @RestController public class GoodsController { @ApiImplicitParams({ @ApiImplicitParam(name="id",value = "商品id",paramType = "query",dataType="long"), }) @ApiOperation("根据id查询一个商品") @GetMapping("/findById") public RetMsg<Goods> findById( Long id){ Goods goods= new Goods(); goods.setGoodsId(id); goods.setGoodsName("商品名称:"+RandomUtil.getChars(3)); goods.setGoodsPrice("13.45"); goods.setRemark(RandomUtil.getChars(5)); return RetMsg.success(goods); } // @ApiOperation("添加一个商品") // @PostMapping("/add") // public RetMsg<?> add(@Validated Goods goods) { // System.out.println("xxxx"); // return RetMsg.success(); // } @ApiOperation("添加一个商品") @PostMapping("/add") public RetMsg<?> add(@Validated @RequestBody Goods goods,HttpServletRequest request) { System.out.println("xxxx"); String token = request.getHeader("Authorization"); System.out.println("token:"+token); return RetMsg.success(); } }
package com.tingcream.springmybatis.sw.model; import java.io.Serializable; import io.swagger.annotations.ApiModelProperty; public class Goods implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("商品id") private Long goodsId; @ApiModelProperty("商品名称") private String goodsName; @ApiModelProperty("商品价格") private String goodsPrice;// @ApiModelProperty("创建时间") private String createTime;//创建时间 @ApiModelProperty("备注") private String remark;//备注 public Long getGoodsId() { return goodsId; } public void setGoodsId(Long goodsId) { this.goodsId = goodsId; } public String getGoodsName() { return goodsName; } public void setGoodsName(String goodsName) { this.goodsName = goodsName; } public String getGoodsPrice() { return goodsPrice; } public void setGoodsPrice(String goodsPrice) { this.goodsPrice = goodsPrice; } public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } }
package com.tingcream.springmybatis.common; import java.io.Serializable; /** * 返回消息 * @author jelly * */ public class RetMsg<T> implements Serializable { /** * */ private static final long serialVersionUID = 1L; private int code;//返回状态码 private String msg;//返回状态消息 private T data ;//业务参数 public static <T> RetMsg<T> success(){ return new RetMsg<T>(200,"成功"); } public static <T> RetMsg<T> success(T data){ return new RetMsg<T>(200,"成功",data); } public static <T> RetMsg<T> failure(){ return new RetMsg<T>(300,"失败"); } public static <T> RetMsg<T> failure(String msg){ return new RetMsg<T>(300,msg); } public RetMsg() { } public RetMsg(int code) { this.code = code; } public RetMsg(int code, String msg) { this.code = code; this.msg = msg; } public RetMsg(int code, String msg,T data) { this.code = code; this.msg = msg; this.data=data; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; } }
Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1