# 数据服务API调用说明
# 获取授权
# 获取授权账号和密钥
在服务授权后,可以在数据服务-服务管理-服务授权页面查看对应账号和密钥
# 获取对应 Token
[url]
/api/clients/auth[METHOD]
POST[Content-Type]
multipart/form-data
# 入参
参数名称 | 参数类型 | 参数说明 |
---|---|---|
ciphertext | boolean | 是否加密 |
client | string | 账号 |
secret | string | 密钥 |
# 出参
参数名称 | 参数类型 | 参数文档 |
---|---|---|
client | string | 账号 |
token | string | token |
expiresAt | long | 失效时间 |
# 调用示例
# 查询操作
# 查询数据
[url]
/api/sql-services/:id/query[METHOD]
GET/POST[Content-Type]
application/json
# 调用前置条件
需将获取授权接口中获取到的 token 参数传入 在 header 中添加 Authorization: Bearer {token} 或者在 postman 中将 token 填写到下图中的对应位置
# 调用示例
# 分页
开发者通过 API 接口获取数据时,数据会以页的形式传输。分页通过 pageNumber 与 pageSize 参数生效,pageNumber 表示第 n-1 页,pageSize 表示当前的页面的数据条数。pageNumber 默认值为 0,pageSize 默认值为 10。
默认最大分页数为 1000,可以通过修改配置 service.sql.query.max-page-size=1000 进行修改
注意:
1.键值对形式的参数既可写在 URL 的后面。
2.带有请求体的请求无法直接在浏览器地址栏中访问,如需测试,请使用 postman 等工具,或浏览器安装可以发送 post 请求的插件。如图 2 以 postman 为例,在拥有网络环境的情况下,可访问 postman 官网下载。
# 排序
实现排序需要使用参数 sorts,而且由于排序参数较为复杂只能使用请求体构建 sorts 是声明排序的关键字,name 是想要用于排序的字段,direction 为排序方式,ASC 为升序,DESC 为降序。 示例:
# 条件查询
API 接口中作为查询条件传递的字段,必须是“接口输入参数”(即服务开发中选择的输入参数),如果该字段不是接口输入参数,作为查询条件进行传参,接口会返回对应的报错信息 注:1.如果某个字段是必填字段,即必须传递此字段,否则无法获取 API 数据(在请求 api 后会返回相应的错误信息提示)
查询示例如下
条件查询的入参为 criteria,支持参数条件逻辑嵌套
写法。从而支持较复杂的查询逻辑.
name 为查询字段名
value 为查询值,数量根据 match 的值改变
match 为条件 当为父节点时值为 OR/AND,当作为查询条件的时候可为下方表格中内容
value | 等效 sql 匹配符号 | 传递 value 数组大小 |
---|---|---|
eq | = | 1 |
ne | <> | 1 |
gt | > | 1 |
ge | >= | 1 |
lt | < | 1 |
le | <= | 1 |
like | LIKE | 1 |
not_like | NOT LIKE | 1 |
between | BETWEEN | 2 |
not_between | NOT BETWEEN | 2 |
in | IN | 不限 |
not_in | not_in | 不限 |
not_null | IS NOT NULL | 0 |
is_null | IS NULL | 0 |
# 简单条件查询
{
"criteria": {
"match": "AND",
"children": [
{
"name": "cataId",
"value": [1565],
"match": "eq"
}
]
}
}
# 模糊条件查询
{
"criteria": {
"match": "AND",
"children": [
{
"name": "cataTitle",
"value": ["%BUSINESS%"],
"match": "like"
}
]
}
}
# 比较条件查询
{
"criteria": {
"match": "AND",
"children": [
{
"name": "updateTime",
"value": ["2024-03-16 00:23:04"],
"match": "lt"
}
]
}
}
# NULL 值查询
{
"criteria": {
"match": "AND",
"children": [
{
"name": "openToPublic",
"value": [],
"match": "is_null"
}
]
}
}
# 复杂查询
{
"criteria": {
"match": "OR",
"children": [
{
"name": "openToPublic",
"value": [],
"match": "is_null"
}
{
"match": "AND",
"children": [
{
"name": "cataTitle",
"value": ["%BUSINESS%"],
"match": "like"
},
{
"name": "cataId",
"value": ["1","2","3"],
"match": "in"
}
]
}
]
}
}
等效 sql 如下
openToPublic is null or ( cataTitle like '%BUSINESS%' and cataId in ("1","2","3"))
# 结果集动态参数查询
{
"criteria": {
"match": "AND",
"children": [
{
"name": "cataId",
"value": [1565],
"match": "eq"
}
]
},
"paramMap": {
"status": "1"
}
}
有动态参数的条件查询的入参为 criteria、paramMap,他们之间的关系为AND。 其中paramMap为动态参数集合,其中“status” 为变量,是授权服务时配置的动态参数名称。
# 错误码说明
错误代码 | 错误信息 | 详细描述 |
---|---|---|
1000002 | UNAUTHORIZED | 未授权 |
1100003 | ACCESS_DENY | 授权无效 |
2000001 | INVALID_SERVICE | 非法服务 |
2000002 | INVALID_PARAM | 非法参数 |