• Swagger2使用记录


    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:多个请求参数
    
  • 相关阅读:
    【转载】webDriver拾级而上·之五 iframe的处理
    Linux课程笔记 用户和用户组管理
    Linux课程笔记 文件和目录权限
    Linux课程笔记 软硬链接
    Java算法面试题
    Linux课程笔记 Day09 课上内容总结 MySql,Php的安装及Apache,Nginx,Php的优化
    Day13 高级子查询
    Day12 SET运算符
    Day11 其他数据库对象
    Linux课程笔记 Day08 课上内容总结 Apache,Raid技术及Nginx
  • 原文地址:https://www.cnblogs.com/sky-chen/p/10793421.html
Copyright © 2020-2023  润新知