swagger在springboot上的简单使用

背景:

    在用springboot开发项目时,api接口写好后不知是否能正常运行,这个时候就需要测试了。

    项目结构图:


    代码:

        Book

@Entity
@Table(name = "t_book")
public class Book {

    @Id
    @GeneratedValue
    private Integer id;

    @Column(length = 100)
    private String name;

    private Float price;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Float getPrice() {
        return price;
    }

    public void setPrice(Float price) {
        this.price = price;
    }
}

        BookDao

public interface BookDao extends JpaRepository<Book, Integer>, JpaSpecificationExecutor<Book> {
}

        BookController

@Controller
@RequestMapping("/book")
public class BookController {

    @Resource
    private BookDao bookDao;

    @PostMapping("/add")
    @ResponseBody
    public String add(Book book) {
        bookDao.save(book);
        return "add success";
    }
}


    如上,若要测试/book/add接口,由于是post方法提交,则需要写一个from表单进行测试,这样无疑加大了后端人员的工作负担。

    因此,在这里正式介绍今天的主角——swagger。

    随着时代发展,现在的网站开发前后端关系已是越来越少,api接口是前后端人员的唯一纽带,可想其重要性。如上所说,如果后端人员在测试api接口是需要写前端代码,这样显然不是一个高效的开发方式。而swagger不仅能在线测试接口,而且对接口文档进行实时更新,也更利于管理。

    那事不宜迟,现在来看看如何在springboot上使用swagger


使用

    在pom文件上添加依赖

        <!-- swagger生成接口API -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>

        <!-- 接口API生成html文档 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>

    在实体类Book添加注解

@Entity
@Table(name = "t_book")
public class Book {

    @Id
    @GeneratedValue
    @ApiModelProperty("图书id")//swagger注解,对实体属性的描述
    private Integer id;

    @Column(length = 100)
    @ApiModelProperty("书名")//swagger注解,对实体属性的描述
    private String name;

    @ApiModelProperty("价格")//swagger注解,对实体属性的描述
    private Float price;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Float getPrice() {
        return price;
    }

    public void setPrice(Float price) {
        this.price = price;
    }
}
    在控制层BookController添加注解
@Controller
@RequestMapping("/book")
@EnableSwagger2//启用Swagger2
public class BookController {

    @Resource
    private BookDao bookDao;

    @ApiOperation("新增图书")//用于方法,表示一个http请求的操作
    @PostMapping("/add")
    @ResponseBody
    public String add(@ApiParam("from表单封装的book实体")//用于方法,参数,字段说明,表示对参数的添加元数据(说明或是否必填等) Book book) {
        bookDao.save(book);
        return "add success";
    }
}

    (蓝字为添加内容)


测试

    运行springboot程序,在浏览器输入http://localhost:8080/swagger-ui.html,出现以下页面


    输入数据


    点击 Try it out! 展示出测试结果 


    查看数据库


    数据库成功显示数据,说明此接口能正确运行


总结

    用了swagger之后,后端人员测试接口就完全碰前端代码了,开发效率得到了提高。而且在有多个controller的时候swagger也会自动帮你整理好多个api接口,只要你写代码的时候写好swagger的注解,在运行swagger的时候就相当于自动生成一份api文档,岂不是美滋滋?

    




猜你喜欢

转载自blog.csdn.net/weixin_39274753/article/details/79940612
今日推荐