• Swagger API


    Swagger 简介

    在团队开发中,一个好的 API 文档不但可以减少大量的沟通成本,还可以帮助一位新人快速上手业务。传统的做法是由开发人员创建一份 RESTful API 文档来记录所有的接口细节,并在程序员之间代代相传。

    这种做法存在以下几个问题:

    • API 接口众多,细节复杂,需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等,想要高质量的完成这份文档需要耗费大量的精力;
    • 难以维护。随着需求的变更和项目的优化、推进,接口的细节在不断地演变,接口描述文档也需要同步修订,可是文档和代码处于两个不同的媒介,除非有严格的管理机制,否则很容易出现文档、接口不一致的情况

    Swagger2 的出现就是为了从根本上解决上述问题。它作为一个规范和完整的框架,可以用于生成、描述、调用和可视化 RESTful 风格的 Web 服务:

    1. 接口文档在线自动生成,文档随接口变动实时更新,节省维护成本
    2. 支持在线接口测试,不依赖第三方工具

    代码、依赖

    <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>

    <dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

    Swagger API 讲解

    @Api:用在请求的类上,表示对类的说明

    tags="说明该类的作用,可以在UI界面上看到的注解"

    value="也是说明该类的作用,可用用tags代替"

    @ApiOperation:用在请求的方法上,说明方法的用途、作用

    value="说明方法的用途、作用"

    notes="方法的备注说明"

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

    @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

    name:参数名

    value:参数的汉字说明、解释

    required:参数是否必须传

    paramType:参数放在哪个地方

    · header --> 请求参数的获取:@RequestHeader

    · query --> 请求参数的获取:@RequestParam

    · path(用于restful接口)--> 请求参数的获取:@PathVariable

    · div(不常用)

    · form(不常用)

    dataType:参数类型,默认String,其它值dataType="Integer"

    defaultValue:参数的默认值

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

    @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息

    code:数字,例如400

    message:信息,例如"请求参数没填好"

    response:抛出异常的类

    @ApiModel:用于响应类上,表示一个返回响应数据的信息

    (这种一般用在post创建的时候,使用@RequestBody这样的场景,

    请求参数无法使用@ApiImplicitParam注解进行描述的时候)

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

    • @Api:修饰整个类,描述Controller的作用
    • @ApiOperation:描述一个类的一个方法,或者说一个接口
    • @ApiParam:单个参数描述
    • @ApiModel:用对象来接收参数
    • @ApiProperty:用对象接收参数时,描述对象的一个字段
    • @ApiResponse:HTTP响应其中1个描述
    • @ApiResponses:HTTP响应整体描述
    • @ApiIgnore:使用该注解忽略这个API
    • @ApiError :发生错误返回的信息
    • @ApiImplicitParam:描述一个请求参数,可以配置参数的中文含义,还可以给参数设置默认值
    • @ApiImplicitParams:描述由多个 @ApiImplicitParam 注解的参数组成的请求参数列表

    当响应类上有需要忽略的参数时,可以使用@JsonIgnore

    @Jsonlgnore作用:在json序列化时将实体类中的一些属性忽略掉,标记在属性或者方法上,返回的json数据即不包含该属性。

  • 相关阅读:
    Dockerfile指令学习 (转)
    手机触屏滑动图片切换插件swiper.js
    基于jquery网站左侧下拉菜单
    支持移动触摸设备的简洁js幻灯片插件
    基于jquery仿天猫分类导航banner切换
    基于jQuery图像碎片切换效果插件FragmentFly
    基于jQuery在线问卷答题系统代码
    基于CSS3自定义发光radiobox单选框
    基于jQuery左右滑动切换图片代码
    基于CSS3和jQuery实现的3D相册
  • 原文地址:https://www.cnblogs.com/weigy/p/16384262.html
Copyright © 2020-2023  润新知