Swagger

﹥>﹥吖頭↗ 提交于 2019-12-21 01:18:02

Swagger介绍

什么是Swagger?
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标 是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

Swagger常用注解

@Api 修饰整个类描述Controller作用 (用于类)
@ApiParam 单个参数描述 (用于方法)
@ApiModel 用对象来接收参数 (用于类)
@ApiModelProperty 用对象接收参数时 描述对象的一个字段 (用于方法,字段)
@ApiOperation 表示一个http请求的操作 (用于方法)
@ApiImplicitParam 单个请求参数 (用于方法)
@ApiImplicitParam 多个请求参数(用于方法)
@ApiIgnore 忽略这个api

Swagger使用方法

项目结构

源码 https://github.com/hejiajie6318272/swagger_test.git
在这里插入图片描述

添加依赖

这里我用的是springboot

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
  </parent>
 <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.7.0</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.7.0</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.30</version>
    </dependency>
  </dependencies>
创建配置类
@Configuration  // 声明这是个配置类
@EnableSwagger2  // 开启Swagger2注解
public class SwaggerConfig {
    @Bean
    public Docket swaggerApi() {
        return new Docket(DocumentationType.SWAGGER_2)  // 文档类型为 swagger2
                .apiInfo(apiInfo())   // Api 信息
                .select()
                // 扫描 czy包下标记了@RestController 或 @Controller的类 根据类的方法生成接口对象
                .apis(RequestHandlerSelectors.basePackage("com.czy"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Swagger测试")  // Api 标题
                .description("Swagger文档")  // Api描述
                .version("1.0")  // api版本
                .build();
    }
}
创建接口

@Api(value = "SwaggerTest测试")
public interface SwaggerApi {
    @ApiOperation("第一个测试")
    public String testOne(User user,String id);
}

创建Controller
@RestController
public class SwaggerController implements SwaggerApi {

    @Override
    @PostMapping("/test/{id}")
    public String testOne(@RequestBody User user,@PathVariable ("id")String id) {
        user.setId(id); // 将接收到的id设置到user对象
        String string = JSON.toJSONString(user); // 将user对象转成json格式
        return string;
    }
}
创建实体类
@ApiModel(value = "用户对象")  // 描述实体类
public class User {
    @ApiModelProperty("用户姓名")  // 描述字段
    private String name;
    @ApiModelProperty("用户性别")
    private String sex;
    @ApiModelProperty(hidden = true) // 该字段不显示
    private String id;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", id='" + id + '\'' +
                '}';
    }
}
配置启动类
@SpringBootApplication
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class);
    }
}

启动项目后 输入 http://localhost:1111/swagger-ui.html#/

在这里插入图片描述
点击打开后

在这里插入图片描述

在这里插入图片描述
返回的JSON数据
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!