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

API项目:发布下线

功能设计

发布接口

首先需要验证接口是否存在,然后判断接口是否可调用,否则访问接口都是 404,影响用户体验。

接着,如果接口可以调用,我们需要修改数据库中该接口的状态为 1,表示接口已经被发布,状态默认为 0(关闭)。

下线接口

当状态为 0 时,表示该接口还没有进行任何处理

我们这里就直接使用 0 和 1 来表示状态,不再添加额外的状态字段,大家可以按照自己的需求进行设计。对于下线接口,校验接口是否存在也是和发布接口类似的,但是下线接口无需判断接口是否可调用。

总结

后台接口:

发布接口(仅管理员可操作)

  1. 校验该接口是否存在
  2. 判断该接口是否可以调用
  3. 修改接口数据库中的状态字段为 1(已发布)

下线接口(仅管理员可操作)

  1. 校验该接口是否存在
  2. 修改接口数据库中的状态字段为 0

这两个接口接收什么参数呢?接口的 id 即可

发布接口

InterfaceInfoController.java

/*** 发布** @param idRequest* @return*/
// 声明该方法为一个HTTP POST请求处理方法,处理路径是"/online",用于发布接口
@PostMapping("/online")
@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)// 该接口仅管理员可用
public BaseResponse<Boolean> onlineInterfaceInfo(@RequestBody IdRequest idRequest) {// 如果id为null或者id小于等于0if (idRequest == null || idRequest.getId() <= 0) {// 抛出业务异常,表示请求参数错误throw new BusinessException(ErrorCode.PARAMS_ERROR);}// 1.校验该接口是否存在// 获取idRequest对象的id属性值long id = idRequest.getId();// 根据id查询接口信息数据InterfaceInfo oldInterfaceInfo = interfaceInfoService.getById(id);// 如果查询结果为空if (oldInterfaceInfo == null) {// 抛出业务异常,表示未找到数据throw new BusinessException(ErrorCode.NOT_FOUND_ERROR);}// 2.判断该接口是否可以调用// 创建一个User对象(这里先模拟一下,搞个假数据)com.sujie.suapiclientsdk.model.User user = new com.sujie.suapiclientsdk.model.User();// 设置user对象的username属性为"test"user.setUsername("test");// 通过yuApiClient的getUsernameByPost方法传入user对象,并将返回的username赋值给username变量String username = suApiClient.getUserNameByPost(user);// 如果username为空或空白字符串if (StringUtils.isBlank(username)) {// 抛出系统错误的业务异常,表示系统内部异常,并附带错误信息"接口验证失败"throw new BusinessException(ErrorCode.SYSTEM_ERROR, "接口验证失败");}// 创建一个InterfaceInfo对象InterfaceInfo interfaceInfo = new InterfaceInfo();// 设置interfaceInfo的id属性为idinterfaceInfo.setId(id);// 3.修改接口数据库中的状态字段为上线 1interfaceInfo.setStatus(InterfaceInfoStatusEnum.ONLINE.getValue());// 调用interfaceInfoService的updateById方法,传入interfaceInfo对象,并将返回的结果赋值给result变量boolean result = interfaceInfoService.updateById(interfaceInfo);// 返回一个成功的响应,响应体中携带result值return ResultUtils.success(result);
}

@AuthCheck注解 实现方法在aop文件夹

原理:

首先获取当前登录用户的信息,然后判断用户是否具有管理员权限。

如果没有权限,就会直接抛出权限异常;

如果有权限,就会继续执行后续操作。

这种方式被称为 AOP 切面的基本应用之一,这个功能一定要掌握好,能够帮助你更好地理解和应用 AOP 的概念。

下线接口

同样的逻辑判断 id 是否存在、判断这个接口是否存在,判断接口是否可以调用就不需要了,把上线的状态改为下线的状态。

前端

增加发布和下线按钮


http://www.mrgr.cn/news/51567.html

相关文章:

  • 图论day62|拓扑排序理论基础、117.软件构建(卡码网)、最短路径之dijkstra理论基、47.参加科学大会(卡码网 第六期模拟笔试)
  • 在线培训知识库管理系统:教育行业的新动力
  • Qt | CMake(Qt5 VS Qt6)
  • 【计网】从零开始理解TCP协议 --- 熟悉TCP报头结构并理解三次握手与四次挥手
  • Java爬虫之使用Selenium WebDriver 爬取数据
  • c++实现跳表
  • CSMA/CD协议 监听算法
  • 在使用linux过程中找不到占据空间的大文件的解决方法
  • BUUCTF[GKCTF 2021]你知道apng吗
  • 养宠物的空气净化器有哪几款推荐?有没有性价比高的分享?
  • Docker--harbor私有仓库部署与管理
  • MybatisWebApp
  • 剖析线程池实现原理
  • k8s和ipvs、lvs、ipvsadm,iptables,底层梳理,具体是如何实现的
  • Blob详解
  • 【Python入门】提升 Python 水平的高级指南
  • Java传递对象是值传递还是引用传递?
  • 错误:SyntaxError: f-string: unmatched ‘(‘
  • 你必须知道postman和Jmeter做接口测试区别
  • 粘包与分包