普元数据资产管理平台 普元数据资产管理平台
  • 7.1GA
  • 7.1.1GA
  • 7.2GA
  • 7.3GA
产品简介
快速开始
安装指南
数据资产及目录
数据标准
数据模型
元数据管理
数据服务
数据安全
常见问题解答
开发指南
更新日志
  • 数据服务API调用说明
  • 获取授权
  • 获取授权账号和密钥
  • 获取对应 Token
  • 入参
  • 出参
  • 调用示例
  • 查询操作
  • 查询数据
  • 调用前置条件
  • 调用示例
  • 分页
  • 排序
  • 条件查询
  • 简单条件查询
  • 模糊条件查询
  • 比较条件查询
  • NULL 值查询
  • 复杂查询
  • 结果集动态参数查询
  • 错误码说明

# 数据服务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 填写到下图中的对应位置 图片

# 调用示例

alt text

# 分页

开发者通过 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 官网下载。 alt text

# 排序

实现排序需要使用参数 sorts,而且由于排序参数较为复杂只能使用请求体构建 sorts 是声明排序的关键字,name 是想要用于排序的字段,direction 为排序方式,ASC 为升序,DESC 为降序。 示例: alt text

# 条件查询

API 接口中作为查询条件传递的字段,必须是“接口输入参数”(即服务开发中选择的输入参数),如果该字段不是接口输入参数,作为查询条件进行传参,接口会返回对应的报错信息 注:1.如果某个字段是必填字段,即必须传递此字段,否则无法获取 API 数据(在请求 api 后会返回相应的错误信息提示)

查询示例如下 alt text

条件查询的入参为 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 非法参数
上次更新: 2024/11/8下午2:45:38

← Elasticsearch开启HTTPS方式 安全接口调用说明 →