LeAPI 后端接口开发 - 发布、下线接口

一、上线接口(仅管理员)

  1. 校验请求参数

  2. 判断(测试)接口是否可以调用

  • 引入调用接口的客户端(自己写的 SDK)
  • 注入客户端实例
  • 调用接口
  1. 修改数据库中接口的状态
java 复制代码
    /**
     * 上线(发布)接口
     *
     * @param idRequest
     * @param request
     * @return
     */
    @PostMapping("/online")
    @AuthCheck(mustRole = "admin")
    public BaseResponse<Boolean> onlineInterfaceInfo(@RequestBody IdRequest idRequest,
                                                     HttpServletRequest request) {
        if (idRequest == null || idRequest.getId() <= 0) {
            throw new BusinessException(ErrorCode.PARAMS_ERROR);
        }
        // 1. 校验接口是否存在
        Long id = idRequest.getId();
        InterfaceInfo oldInterfaceInfo = interfaceInfoService.getById(id);
        if (oldInterfaceInfo == null) {
            throw new BusinessException(ErrorCode.NOT_FOUND_ERROR);
        }
        // 2. 校验接口是否可以调用
        com.ghost.leapiclientsdk.model.User user = new com.ghost.leapiclientsdk.model.User();
        user.setUsername("testInterfaceInfo");
        String nameByJSON = leAPIClient.getNameByJSON(user);
        if (StringUtils.isBlank(nameByJSON)) {
            throw new BusinessException(ErrorCode.SYSTEM_ERROR, "接口调用失败");
        }
        // 3. 修改数据库中接口的状态
        InterfaceInfo interfaceInfo = new InterfaceInfo();
        interfaceInfo.setId(id);
        interfaceInfo.setStatus(InterfaceInfoStatusEnum.ONLINE.getValue());
        boolean result = interfaceInfoService.updateById(interfaceInfo);
        return ResultUtils.success(result);
    }
  1. 测试上线接口功能
  • 使用 Knife4j 接口文档进行测试
  • 查看数据库中接口状态是否修改成功

二、下线接口(仅管理员)

  1. 校验请求参数

  2. 校验接口是否已经发布上线:只有已经上线的接口才能下线

  3. 修改数据库中接口的状态

java 复制代码
    /**
     * 下线(关闭)接口
     *
     * @param idRequest
     * @param request
     * @return
     */
    @PostMapping("/offline")
    public BaseResponse<Boolean> offlineInterfaceInfo(@RequestBody IdRequest idRequest, HttpServletRequest request) {
        if (idRequest == null || idRequest.getId() <= 0) {
            throw new BusinessException(ErrorCode.PARAMS_ERROR);
        }
        // 1. 校验接口是否存在
        Long id = idRequest.getId();
        InterfaceInfo oldInterfaceInfo = interfaceInfoService.getById(id);
        if (oldInterfaceInfo == null) {
            throw new BusinessException(ErrorCode.NOT_FOUND_ERROR);
        }

        // 2. 只有已经上线的接口才能下线
        if (oldInterfaceInfo.getStatus() != InterfaceInfoStatusEnum.ONLINE.getValue()) {
            throw new BusinessException(ErrorCode.PARAMS_ERROR, "该接口尚未上线");
        }

        // 3. 修改数据库中接口的状态
        InterfaceInfo interfaceInfo = new InterfaceInfo();
        interfaceInfo.setId(id);
        interfaceInfo.setStatus(InterfaceInfoStatusEnum.OFFLINE.getValue());
        boolean result = interfaceInfoService.updateById(interfaceInfo);
        return ResultUtils.success(result);
    }
  1. 测试上线接口功能
  • 使用 Knife4j 接口文档进行测试
  • 查看数据库中接口状态是否修改成功
相关推荐
Muko_0x7d21 分钟前
Mongodb
数据库·mongodb
Ren_xixi7 分钟前
redis和mysql的区别
数据库·redis·mysql
m0_7482338839 分钟前
SQL语句整理五-StarRocks
数据库·sql
州周1 小时前
Ftp目录整个下载
linux·服务器·数据库
码农君莫笑1 小时前
使用blazor开发信息管理系统的应用场景
数据库·信息可视化·c#·.net·visual studio
NiNg_1_2341 小时前
Echarts连接数据库,实时绘制图表详解
前端·数据库·echarts
Azoner1 小时前
postgresql安装部署(linux)
数据库·postgresql
PyAIGCMaster2 小时前
文本模式下成功。ubuntu P104成功。
服务器·数据库·ubuntu
drebander2 小时前
MySQL 查询优化案例分享
数据库·mysql
初晴~2 小时前
【Redis分布式锁】高并发场景下秒杀业务的实现思路(集群模式)
java·数据库·redis·分布式·后端·spring·