SpringBoot集成Swagger

来源:互联网 发布:算法分析专业 编辑:程序博客网 时间:2024/06/05 03:03

一、swagger简述

Swagger 是一个帮助完善项目文档规范的框架。我们在类上使用提供的注解写注释,swagger可以根据我们写的注释内容生成相应的web页面,展示我们项目中的api文档。同时我们可以直接在页面上直接调用相应的接口。

二、依赖

compile("io.springfox:springfox-swagger2:2.7.0") //核心包,提供了注解compile("io.springfox:springfox-swagger-ui:2.7.0")//提供自身所需的UI

三、创建配置类

@Configuration  //定义配置类@EnableSwagger2   //启用swagger2.0public class AntSwaggerConfig {  /**  * @desc select()函数用来选择哪些接口需要swagger来展现,这里通过.apis()和.paths()选择"com.maxrocky.ant"包的所有路径下的接口  * @return docket  */    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("com.maxrocky.ant"))                .paths(PathSelectors.any())                .build();    }  /**  * @desc 用来创建该Api的基本信息   */    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("物流抽象系统")                .description("物流抽象系统")                .version("1.0")                .build();    }}

四、具体使用

添加文档内容

@Api(value = "物流")  //说明该类的作用@RestController@RequestMapping(value = "/Logistics", produces = "application/json")public class LogisticsController { @Autowired BaseLogisticService baseLogisticService; @Autowired AntBaseParameterDO baseParameterDO; @ApiOperation(value="物流详情", notes="",produces = "application/json")//说明该方法的作用 @ApiImplicitParams(value = {         @ApiImplicitParam(name = "logisticId", value = "物流标识ID", required = true, paramType = "path", dataType = "String") })  //@ApiImplicitParams、@ApiImplicitParam注解来给参数增加说明。 @RequestMapping(value = "/GetLogisticDetail/{logisticId}",method = RequestMethod.GET) public SyncJsonResult getLogisticDetail(@PathVariable String logisticId){     return ForeignSuccessResult.success("0",   logisticService.getLogisticRoute(logisticId)); } //post请求方式的参数描述在下方 @ApiOperation(value="创建物流", notes="",produces = "application/json")  //说明该方法的作用 @RequestMapping(value = "/Create",method = RequestMethod.POST) public ForeignResult create(@RequestBody RequestDO<BaseLogisticRequestDO> requestDO){     BaseLogisticResponseDO baseLogisticResponseDO = new BaseLogisticResponseDO(baseLogisticService.create(requestDO.getBody()));     return ForeignSuccessResult.success(             baseParameterDO.getSign(baseLogisticResponseDO),baseLogisticResponseDO); }}

由于post请求的参数是由对象来接受的,因此参数的描述在对象里增加

@Data@ApiModel(value = "创建物流请求载体")//对象描述public class BaseLogisticRequestDO extends BaseDO {/*@ApiModelProperty--属性的描述,value:属性的描述,required:是否必传,position:传入顺序,默认为0,值越小越靠前,example:示例值*///这里只列举了几个,其他的大家可参考官方文档@ApiModelProperty(value = "订单ID",required = true,position = 1,example = "1089909")@NotBlank(message = "BL_SP10002")private String orderId;@NotBlank(message = "BL_SP10004")@ApiModelProperty(value = "收货人姓名",required = true,position = 2,example = "张三")private String reciverName;@NotBlank(message = "BL_SP10005")@ApiModelProperty(value = "收货人手机",required = true,position = 3,example = "18701245040")private String reciverPhone;@NotBlank(message = "BL_SP10006")@ApiModelProperty(value = "收货地址",required = true,position = 4,example = "佛山市碧桂园")private String reciverAddress;@NotBlank(message = "BL_SP10007")@ApiModelProperty(value = "发货人姓名",required = true,position = 5,example = "碧桂园凤凰优选")private String shipperName;@NotBlank(message = "BL_SP10008")@ApiModelProperty(value = "发货人手机",required = true,position = 6,example = "18701245041")private String shipperPhone;//...}

四、访问地址

http://ip:端口/swagger-ui.html

原创粉丝点击