前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swagger2使用记录

Swagger2使用记录

作者头像
老梁
发布2019-09-10 18:39:10
5550
发布2019-09-10 18:39:10
举报

1. Swagger2使用记录

1.1. Bean配置文件

@Configuration
public class Swagger2 {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.beikbank.fund"))
                .paths(PathSelectors.any())
                .build();
    }
    
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("springboot利用swagger构建api文档")
                .description("简单优雅的restfun风格")
//              .termsOfServiceUrl("http://www.baidu.com")
                .version("1.0")
                .build();
    }
}
@SpringBootApplication
@EnableSwagger2
public class FundApplication {

    public static void main(String[] args) {
        SpringApplication.run(FundApplication.class, args);
    }

}

1.2. pom文件配置

        <!-- swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

1.3. Bean对象属性配置

@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("t_uls_daily_price")
@ApiModel(value="DailyPrice对象", description="每日实时统计价格")
public class DailyPrice extends Model {

    private static final long serialVersionUID = 1L;

    @TableId(value = "fund_id", type = IdType.INPUT)
    private Long fundId;

    @ApiModelProperty(value = "开盘价")
    private BigDecimal openPrice;

    @ApiModelProperty(value = "当前价格")
    private BigDecimal currPrice;

    @ApiModelProperty(value = "当前时间")
    private Date currTime;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "状态:0可用,1不可用")
    private transient Integer status;

    /**
     * 添加transient会导致逻辑删除模式失效
     */
    @ApiModelProperty(value = "是否删除:0-正常 1-软删除")
    @TableLogic
    @TableField(select = false)
    private Integer delFlag;


}
  1. 在页面上会显示如下

1.4. controller配置

@RestController
@RequestMapping("/fund/daily-price")
public class DailyPriceController {

    @ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")
    @ApiImplicitParam(name = "price", value = "价格", required = true, dataType = "BigDecimal", paramType = "path")
    @RequestMapping(value = "/daily/{price}", method = RequestMethod.GET)
    public ResponseEntity<DailyPrice> getUserById (@PathVariable(value = "price") BigDecimal price){
        DailyPrice r = new DailyPrice();
        r.setDailyPriceId(9999L);
        r.setCurrPrice(price);
        return ResponseEntity.ok(r);
    }
}

页面显示如下

1.5. swagger管理页面访问

  1. 地址http://localhost:8080/swagger-ui.html
  2. 样式如下

1.6. 参数作用记录

@Api:用在请求的类上,表示对类的说明
tags="说明该类的作用,可以在UI界面上看到的注解"
value="该参数没什么意义,在UI界面上也看到,所以不需要配置"

@ApiOperation:用在请求的方法上,说明方法的用途、作用
value="说明方法的用途、作用"
notes="方法的备注说明"

@ApiImplicitParams:用在请求的方法上,表示一组参数说明

@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
name:参数名
value:参数的汉字说明、解释
required:参数是否必须传
paramType:参数放在哪个地方
· header --> 请求参数的获取:

@ApiResponses:用在请求的方法上,表示一组响应

@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
code:数字,例如400message:信息,例如"请求参数没填好"response:抛出异常的类

@ApiModel:用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,
请求参数无法使用@ApiImplicitParam注解进行描述的时候)

@ApiModelProperty:用在属性上,描述响应类的属性

概述

@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam:一个请求参数
@ApiImplicitParams:多个请求参数
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Swagger2使用记录
    • 1.1. Bean配置文件
      • 1.2. pom文件配置
        • 1.3. Bean对象属性配置
          • 1.4. controller配置
            • 1.5. swagger管理页面访问
              • 1.6. 参数作用记录
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档