Skip to content

Test 接口

源码:src/business/controller/test/index.ts
前缀:/api/test
实体表:test
用途:演示 BaseMapper CRUD 与自定义 @Select

WARNING

部分写操作使用了 GET(如 create / delete),仅适合本地演示,正式接口请改用 POST / DELETE。

接口列表

方法路径鉴权说明
GET/api/test/test忽略selectList
GET/api/test/create?name=忽略insert
GET/api/test/by-name?name=忽略自定义 findByName
GET/api/test/find/:id忽略自定义 findById
GET/api/test/delete/:id忽略deleteById

自定义 SQL 示例

TestMapper 中:

ts
@Select(
  'SELECT * FROM ${table} WHERE name = #{name} AND delete_flag = #{flag}'
)
findByName(
  @Param('table') _table: string,
  @Param('name') _name: string,
  @Param('flag') _flag: number
): Promise<Record<string, unknown>[]> {
  return undefined as never
}

@Select('SELECT * FROM test WHERE id = #{id} AND delete_flag = 0')
findById(
  @Param('id') _id: string | number
): Promise<Record<string, unknown>[]> {
  return undefined as never
}
  • #{}:预编译绑定
  • ${}:字符串替换(此处传入表名,仅可信场景使用)
  • 方法体可为占位;实际由装饰器在运行时执行 SQL
  • @Service(TestMapper) 后,Controller 可通过 this.testService.findByName(...) 调用

分层文件

文件作用
business/entity/test.ts实体
business/mapper/test.tsMapper + @Select
business/service/test.tsService
business/controller/test/index.tsHTTP 入口

基于 VitePress 构建