当前位置: 首页 > news >正文

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

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

1. 校验请求参数

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

  • 引入调用接口的客户端(自己写的 SDK)
  • 注入客户端实例
  • 调用接口

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

    /*** 上线(发布)接口** @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);}

4. 测试上线接口功能

  • 使用 Knife4j 接口文档进行测试

  • 查看数据库中接口状态是否修改成功

 

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

1. 校验请求参数

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

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

    /*** 下线(关闭)接口** @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);}

4. 测试上线接口功能

  • 使用 Knife4j 接口文档进行测试

  • 查看数据库中接口状态是否修改成功

相关文章:

  • 导出pdf 加密、加水印、加页脚
  • 计组学习笔记2024/2/5
  • 框架学习Maven
  • Gson源码解读
  • 自动化报告pptx-python|高效通过PPT模版制造报告(三)
  • Jupyter Notebook中的%matplotlib inline详解
  • A系统数据表同步到B系统数据表
  • 2.6作业
  • Java持久化机制和实现的过程
  • 电商推荐系统
  • LabVIEW高精度微小电容测量
  • Django通过Json配置文件分配多个定时任务
  • re:从0开始的CSS学习之路 2. 选择器超长大合集
  • 【数据结构和算法】--- 基于c语言排序算法的实现(1)
  • (篇九)MySQL常用内置函数
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • javascript从右向左截取指定位数字符的3种方法
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Vue.js 移动端适配之 vw 解决方案
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 记一次用 NodeJs 实现模拟登录的思路
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 算法-插入排序
  • 微服务核心架构梳理
  • AI算硅基生命吗,为什么?
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​人工智能书单(数学基础篇)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (全注解开发)学习Spring-MVC的第三天
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (转)linux 命令大全
  • (转)原始图像数据和PDF中的图像数据
  • .gitignore文件_Git:.gitignore
  • .gitignore文件设置了忽略但不生效
  • .net FrameWork简介,数组,枚举
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET连接MongoDB数据库实例教程
  • @Resource和@Autowired的区别
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [14]内置对象
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • [C++]类和对象(中)
  • [Flutter]打包IPA
  • [FTP]pureftp部署和优化
  • [GDMEC-无人机遥感研究小组]无人机遥感小组-000-数据集制备
  • [hibernate]基本值类型映射之日期类型
  • [javaSE] 数据结构(二叉查找树-插入节点)
  • [Java开发之路](14)反射机制
  • [LeetCode刷题笔记]1 - 两数之和(哈希表)
  • [Linux] MySQL数据库之索引