跳到主要内容

分页查询

排序参数

我们定义了 OrderByInput 用于排序查询到的结果,通过在查询中定义 orderBy 参数,每个支持排序的字段 (例如 int, string) 都会有被定义一个 _DESC, _ASC 的枚举类型用于定义排序,目前仅支持单列排序,例如我们想要按照 cpu 降序排列虚拟机,可以使用如下的 order 参数:

{
"orderBy": "VcpuDesc"
}

其余参数

目前 CloudTower API 提供的分页参数如下:

字段名类型是否必填解释
afterstring填入单个资源的 id。表示从该资源之后开始获取,不包含该资源。
beforestring填入单个资源的 id。表示从该资源之前开始获取,不包含该资源。
firstnumber可与 after / before 搭配使用,表示获取指定资源后的多少个数据。
lastnumber非必填项。可与 after / before 搭配使用,表示获取指定资源前的多少个数据。
skipnumber非必填项。可与 after / before 搭配使用,表示跳过指定资源的 n 项后开始查询。
orderByenum所有的值都在 api 各自的 schema 中可以查询到。表示查询顺序,通常包含了资源所有字段的降序(_DESC)或者升序 (_ASC)。
whereobject条件查询,表示查询符合该条件的资源。where 的具体类型定义可在对应 api 的 schema 中查询到。
# 以 `/get-users` 为例,where 为 `UserWhereInput` , 对 id 值的查询条件进行说明。

{
# 满足 id 为 1 的资源
id: "1",
# 满足 id 不为 1 的资源
id_not: "1"
# 满足 id 在给定范围内的资源
id_in: ["1","2","3","4"]
# 满足 id 不在给定范围内的资源
id_not_in: ["1","2","3","4"]
# 满足 id 小于 1 的资源, lt = less than (<)
id_lt: "1",
# 满足 id 小于等于 1 的资源, lte = less than or equals (≤)
id_lte: "1",
# 满足 id 大于 1 的资源, gt = greater than (>)
id_gt: "1",
# 满足 id 大于等于 1 的资源, gte = greater than or equals ( ≥)
id_gte: "1"
# 满足 id 值中包含 1 的资源
id_contains: "1",
# 满足 id 值中不包含 1 的资源
id_not_contains: "1"
# 满足 id 值以 1 为起始的资源
id_starts_with: "1",
# 满足 id 值不以 1 为起始的资源
id_not_starts_with: "1",
# 满足 id 值以 1 为结尾的资源
id_ends_with: "1",
# 满足 id 值不以 1 为结尾 的资源
id_not_ends_with: "1"

}

​ 以 prisma 官方文档 为例,对after, before,first, last, skip查询条件进一步说明。 ​ ​ first

# 获取资源中的前三条记录
{ first: 3 }

​ ​ first-and-skip

# 获取第 5 条记录之后的前 5 条记录,即第 6 ~ 10 条记录
{
skip: 5
first: 5
}

last

# 获取资源的后三条记录
{
last: 3
}

last-and-skip

# 获取倒数第 3 条记录之前的 7 条记录,即倒数第 4 ~ 10 条记录
{
last: 7,
skip: 3
}

after-first

# 获取 id 为 cixnen24p33lo0143bexvr52n 的记录之后的前 3 条记录
{
after: "cixnen24p33lo0143bexvr52n",
first: 3
}

after-skip-first

# 获取 id 为 cixnen24p33lo0143bexvr52n 的记录之后的第 3 条资源之后的前 5 条记录,即第 4~8 条记录
{
first: 5,
after: 'cixnen24p33lo0143bexvr52n',
skip: 3,
}

before-last

# 获取 id 为 cixnen24p33lo0143bexvr52n 的记录之前的 5 条记录
{
last: 5,
before: 'cixnen24p33lo0143bexvr52n',
}

before-skip-last

# 获取 id 为 cixnen24p33lo0143bexvr52n 的记录之前的倒数第 5 条资源之前的 3 条记录,即倒数第 6 ~ 9 条记录
{
last: 3,
before: 'cixnen24p33lo0143bexvr52n',
skip: 5,
}