遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

Swagger测试Restful API

swagger出现背景

我们构建Restful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端,不同端由不同的团队或者小组负责,为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份Restful API文档来记录所有接口细节,但是,由于接口多且复杂,这样的做法是很难执行的,且效果差。

而Swagger2可以轻松的整合到Spring Boot中,既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。

 

Spring Boot集成swagger

待补充

 

修改Controller层

package com.qzcsbj.demo.controller;

import com.qzcsbj.demo.commons.ResultCode;
import com.qzcsbj.demo.commons.ResultCommon;
import com.qzcsbj.demo.mapper.UserMapper;
import com.qzcsbj.demo.pojo.User;
import com.qzcsbj.demo.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
@Api(tags = {"用户操作"})
@RestController
@RequestMapping("/v2")
public class UserController {
    @Autowired
    UserService userService;

    // restful api:增
    @ApiOperation(value = "添加用户", notes = "添加一个用户")
    @PostMapping("/users")
    public ResultCommon add(User user){
        int n = userService.add(user);
        if (n>0){
            return ResultCommon.success(ResultCode.SUCCESS);
        } else {
            return ResultCommon.fail(ResultCode.FAIL);
        }
    }

    // restful api:删
    @ApiOperation(value = "根据id删除用户", notes = "根据id删除一个用户")
    @DeleteMapping("/users/{id}")
    public ResultCommon delete(@PathVariable("id") Integer id){
        int n = userService.delete(id);
        if (n>0){
            return ResultCommon.success(ResultCode.SUCCESS);
        } else {
            return ResultCommon.fail(ResultCode.FAIL);
        }
    }

    // restful api:改
    @ApiOperation(value = "修改用户", notes = "根修改用户信息")
    @PutMapping("/users")
    public ResultCommon update(User user){
        int n = userService.update(user);
        if (n>0){
            return ResultCommon.success(ResultCode.SUCCESS);
        } else {
            return ResultCommon.fail(ResultCode.FAIL);
        }
    }

    // restful api:查
    @ApiOperation(value = "根据id获取用户", notes = "根据id获取用户信息")
    @GetMapping("/users/{id}")
    // @RequestMapping(value = "/user/{id}", method=RequestMethod.GET)
    public ResultCommon findById(@PathVariable("id") Integer id){
        User user = userService.findById(id);
        return ResultCommon.success(ResultCode.SUCCESS, user);
    }

    // restful api:查所有
    @ApiOperation(value = "获取用户列表", notes = "获取所有用户")
    @GetMapping("/users")
    public ResultCommon findAll(){
        List<User> users = userService.findAll();
        return ResultCommon.success(ResultCode.SUCCESS, users);
    }
}

 

效果

访问:http://localhost:8082/swagger-ui.html,端口根据实际情况修改即可。

 

 

swagger上进行测试

这样就可以不用postman或者jmeter测试了

没有前端,可以通swagger模拟前端进行测试

 

id是自增的不用填,addtime是通过函数获取的也不用填

 

 

数据库中新增成功

 

 

 

数据库中删除成功

 

修改前

 

 

 

修改后

 

 

 

查所有

 

 

【bak】

原文会持续更新,原文地址:https://www.cnblogs.com/uncleyong/p/17065992.html

 

posted @ 2023-01-24 15:24  全栈测试笔记  阅读(122)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end