API 接口
查询内容列表
根据简单的排序、分组条件,获取某内容集合的文档数据
请求路径
GET https://${env}.${region}.kits.tcloudbase.com/cms/${kitId}/v1/open-api/projects/${项目ID}/collections/${集合ID}/contents?limit=${limit}&offset=${offset}&fields={fields}&sort={sort}
请求参数
查询操作时,可以在 URL 中添加以下的 Query 参数
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
limit | String | 否 | 查询返回的文档数量,默认 30,最大值 100 |
offset | String | 否 | 查询偏移的文档数量,从 0 开始 |
fields | String | 否 | JSON 对象字符串,例:{ key1: 1, key2: 0 } ,表示取 key1 字段,丢弃 key2 字段 |
sort | String | 否 | JSON 对象字符串,例:{ key1: 1, key2: -1 } ,表示按 key1 升序,key2 降序 排序 |
如:
GET /.../?limit=10&offset=0&fields={"name":1}&sort={"name":1}
响应体
字段 | 类型 | 说明 |
---|---|---|
requestId | String | 请求 ID |
result | Object | 返回结果 |
code | String | 发生错误时的错误码 |
message | String | 发生错误时的错误信息 |
响应示例
{
"code": "NORMAL",
"result": {
"data": [
{
"_id": "kWJAlF1RCLXlFMoR",
"_createTime": "1677061918053",
"_updateTime": "1677061918053",
"name": "ss"
}
],
"total": 1
},
"requestId": "70659005-8b32-46be-8c2b-835aec9a68a6"
}
自定义查询条件获取内容列表
获取符合查询条件的文档列表
请求路径
POST https://${env}.${region}.kits.tcloudbase.com/cms/${kitId}/v1/open-api/projects/${项目ID}/collections/${集合ID}/contents?limit=${limit}&offset=${offset}&fields={fields}&sort={sort}
请求体
如下所示,支持使用Query Command语法构造自定义查询条件来获取内容数据。
{
"price": { "$gt": 100 }
}
使用示例
- Web
- Node.js
const axios = require("axios");
const env = "<环境 ID>";
const region = "<地域,如 ap-shanghai>";
const kitId = "<CMS 的实例 ID>";
const projectId = "<CMS 项目唯一 ID>";
const collectionId = "<CMS 集合唯一 ID>";
// 请求路径
const reqUrl = `https://${env}.${region}.kits.tcloudbase.com/cms/${kitId}/v1/open-api/projects/${projectId}/collections/${collectionId}/contents?limit=10&offset=0`;
// Query Command 查询条件
const query = {
price: { $gt: 100 },
};
const data = await axios.post(reqUrl, query);
const axios = require("axios");
const env = "<环境 ID>";
const region = "<地域,如 ap-shanghai>";
const kitId = "<CMS 的实例 ID>";
const projectId = "<CMS 项目唯一 ID>";
const collectionId = "<CMS 集合唯一 ID>";
// 请求路径
const reqUrl = `https://${env}.${region}.kits.tcloudbase.com/cms/${kitId}/v1/open-api/projects/${projectId}/collections/${collectionId}/contents?limit=10&offset=0`;
// Query Command 查询条件
const query = {
price: { $gt: 100 },
};
const data = await axios.post(reqUrl, query);
查询单条记录
获取指定 Id 的文档
请求路径
GET https://${env}.${region}.kits.tcloudbase.com/cms/${kitId}/v1/open-api/projects/${项目ID}/collections/${集合ID}/contents/${contentId}
请求参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
contentId | String | 是 | 内容 Id |
响应
{
"code": "NORMAL",
"result": {
"_id": "kWJAlF1RCLXlFMoR",
"_createTime": "1677061918053",
"_updateTime": "1677061918053",
"name": "ss"
},
"requestId": "ebcd85f7-9aef-4d5c-a338-f8925c347147"
}
Query Command
下面仅列出了部分 Command,全部 Command 请查看数据库 SDK 文档
$eq
表示字段等于某个值。
语法:{ <field>: { $eq: <value> }}
{
"name": {
"$eq": "cms"
}
}
$ne
表示字段不等于某个值。
语法:{ <field>: { $ne: <value> }}
{
"name": {
"$ne": "luke"
}
}
$gt
表示字段大于某个值。
语法:{ <field>: { $gt: <value> }}
{
"age": {
"$gt": 18
}
}
$gte
表示字段大于或等于某个值。
语法:{ <field>: { $gte: <value> }}
{
"age": {
"$gte": 18
}
}
$lt
表示字段小于某个值。
语法:{ <field>: { $lt: <value> }}
{
"age": {
"$lt": 18
}
}
$lte
表示字段小于或等于某个值。
语法:{ <field>: { $lte: <value> }}
{
"age": {
"$lte": 18
}
}
$in
字段值在给定的数组中。
语法:{ <field>: { $in: [<value1>, <value2>, ... <valueN>] }}
{
"category": {
"$in": ["science", "computer"]
}
}
$nin
字段值不在给定的数组中。
语法:{ <field>: { $nin: [<value1>, <value2>, ... <valueN>] }}
{
"category": {
"$nin": ["science", "computer"]
}
}
$and
表示需同时满足指定的两个或以上的条件。
语法:{ $and: [{ <expression1> }, { <expression2> } , ... , { <expressionN> }] }
{
"$and": [
{
"price": {
"$lt": 200
}
},
{
"price": {
"$gt": 100
}
}
]
}
$or
表示需满足所有指定条件中的至少一个。
语法:{ $or: [{ <expression1> }, { <expression2> }, ... , { <expressionN> }] }
{
"$or": [
{
"price": {
"$lt": 200
}
},
{
"price": {
"$gt": 100
}
}
]
}
$nor
表示逻辑 "都不" 的关系,表示需不满足指定的所有条件。
语法:{ $nor: [{ <expression1> }, { <expression2> }, ... { <expressionN> }] }
{
"$nor": [
{
"price": {
"$lt": 200
}
},
{
"price": {
"$gt": 100
}
}
]
}