测试开发系列之——接口分类&接口功能(一)

本文主要探讨API接口的分类和管理,包括接口分类表和接口表的设计,如api_classification中的project_id和name,以及api表中的接口名称和请求方式。介绍了如何使用mybatis-plus进行接口增删改查,并讨论了接口分类和接口页面的实现,涉及两表连接查询和延迟加载技术。同时,阐述了前端界面的实现,包括添加、删除接口分类的功能以及接口列表的展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

api分类和api模块

  • 与project表有关联projectId

  • 分类列表(懒加载对应的api)

  • 新增分类

  • 删除分类

  • 查询所有api接口

  • 按条件查询api接口

  • 查询出对应分类id的api

  • 添加接口(查询接口分类的name)

  • 删除接口

  • 根据Id查询api

接口分类表

api_classification:接口分类表(接口类别表)

  • id:主键。自动增长。
  • 【核心】project_id:外键。因为按照项目做分类,一个项目有很多分类。
  • 【核心】name:类名。
  • description:描述。
  • create_user:创建用户。mybatis-plus自动填充,创建用户就是登录用户。
  • create_time:创建时间。添加分类的时间。
    在这里插入图片描述

接口表

api:接口表

  • id:主键,自动增长。
  • api_classification_id:外键。接口分类id。
  • 【核心】name:接口名称。
  • method:接口请求方式。
  • url:接口路径地址。接口本身的url,调用这个接口的时候,还需要加上基准路径host。
  • description:对于接口的简单描述。
  • create_user:创建者。mybatis-plus自动填充,创建用户就是登录用户。
  • create_time:创建时间。添加分类的时间。
    在这里插入图片描述

接口分类和接口页面

  • 进入index.html页面,需要显示该项目下的所有接口,同时显示该项目下的接口分类。
  • 全部接口为父菜单,接口信息展示在右侧。除了有接口信息,还有分类信息。
  • 这个页面要进行两表连接。
  • 删除项目的时候,会有集联关系,把这个项目下面的接口用例一起删除,进行集联删除。集联删除,最好是逻辑删除,加一列状态列,还有历史数据在这里。
    在这里插入图片描述
  • 单表的增删改查CRUD,mybatis-plus有代码生成器,可以自己生成代码。
  • 涉及到子查询&高级查询都得自己写,不是用JDBC,是用注解来写。
  • 还是运用mybatis-plus框架,需要自己写SQL语句,通过注解告诉mybatis-plus,让mybatis-plus封装。

两表连接SQL

两边连接会产生笛卡尔集,如果两个大表的连接操作,运用延迟加载。对于大表来说,消耗内存比较多。
延迟加载也叫懒加载,按需加载==先查一张表,然后按需查询另一张表得到关联数据。

-- 两表连接
select * from api_classification,api where 
-- 延迟加载
select * from api_classification where project_id=1;
select * from api where api_classification_id=1;

ApiListVO

public class ApiListVO{
   
	private String id;
	private String name;
	private String method;
	private String url;
	private String classificationName;
}

ApiClassificationVO.java的代码

在com.one.common下创建类ApiClassificationVO.java

package com.one.common;

import java.util.List;

import com.one.pojo.Api;
import com.one.pojo.ApiClassification;

@Data
public class ApiClassificationVO extends ApiClassification{
   
	//关联对象
	List<Api> apis;
}

ApiClassificationMapper.java的代码

在com.one.mapper找到ApiClassificationMapper.java
#{projectId}等价于占位符问号?
可参阅@Results用法总结:blog.youkuaiyun.com/cherlshall/article/details/80950150
所谓@Many,就是一个分类,对应多个api。
可参阅:Mybatis @Many注解一对多关联映射

package com.one.mapper;

import com.one.common.ApiClassificationVO;
import com.one.pojo.ApiClassification;

import java.util.List;

import org.apache.ibatis.annotations.Many;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author annie
 * @since 2020-02-16
 */
public interface ApiClassificationMapper extends BaseMapper<ApiClassification> {
   
	//两表 延迟加载 先查
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值