更新时间:2024-12-10 GMT+08:00
分享

创建API

功能

创建API。

表1 SLA项

SLA项

定义

请求成功率

>=99.9%

可用性

Tair1

数据一致性

最终一致,不一致时长<1分钟

吞吐量

4000tps

TP50请求时延

2ms

TP99.9请求时延

5ms

注意事项

调用方法

POST

URI

/rest/gaia/dataapi/v1/api

路径参数

查询参数

请求

  • 请求header参数
    表2 请求header参数

    参数

    是否必选

    类型

    值域

    说明

    X-Auth-Token

    string

    有效的用户Token

  • 请求body参数
    表3 CreateDataApiRequest对象属性

    参数

    是否必选

    类型

    值域

    说明

    api

    表4

    api基本配置

    input_param_definition

    表5

    入参定义,最大支持50个

    data_retrieval_logic

    表6

    取数逻辑

    表4 CreateApi对象属性

    参数

    是否必选

    类型

    值域

    说明

    name

    string

    API名称

    catalog_id

    string

    所属目录id

    api_path

    string

    API path

    project_id

    string

    所属项目

    security_level

    string

    密级:open(公开) secret(秘密) top(机密)

    request_type

    string

    API 请求类型,GET,POST

    description

    string

    API描述

    表5 CreateInputParamDefine对象属性

    参数

    是否必选

    类型

    值域

    说明

    para_name

    string

    参数名称

    para_position

    string

    参数位置 query,header,path,body

    para_type

    string

    参数类型 number,string

    necessary

    int32

    是否必填 0(必填),1(不必填)

    default_value

    string

    默认值

    example_value

    string

    示例值

    description

    string

    描述

    表6 CreateDataRetrievalLogic对象属性

    参数

    是否必选

    类型

    值域

    说明

    connection_type

    string

    取数类型:config(配置方式),script(脚本方式)

    script_mode

    表7

    脚本方式

    config_mode

    表9

    配置方式

    表7 CreateScriptMode对象属性

    参数

    是否必选

    类型

    值域

    说明

    dataconnection_id

    string

    数据源 只支持高斯类型或CLICKHOUSE类型

    sql_para

    string

    取值脚本

    total_size_switch

    int32

    调试时是否返回totalSize值, 0:不返回totalSize,1:返回totalSize

    total_size_sql

    string

    计算脚本总条数(返回总条数时,该字段有效且必填)

    pagination

    int32

    分页方式:

    1. 由数据服务分页
    2. 用户在sql中自定义分页逻辑

    order_param

    表8

    api排序参数,最大支持50个

    表8 CreateApiOrderParam对象属性

    参数

    是否必选

    类型

    值域

    说明

    para_name

    string

    变量/参数名称

    column_name

    string

    字段名称

    optional

    int32

    是否可选 0:否,1:是

    sort_type

    int32

    排序方式 0:自定义,1:升序 2:降序

    description

    string

    描述

    order_num

    int32

    参数在orderby中的顺序,配置方式生效,1~50

    表9 CreateConfigMode对象属性

    参数

    是否必选

    类型

    值域

    说明

    data_asset_id

    string

    数据资产id

    req_param

    表10

    请求参数,最大支持50个

    resp_param

    表11

    api响应参数,最大支持50个

    order_param

    表8

    api排序参数,最大支持50个

    表10 CreateRequestParamMapping对象属性

    参数

    是否必选

    类型

    值域

    说明

    api_para_name

    string

    绑定参数

    mapping_name

    string

    绑定字段

    condition_type

    string

    操作符

    表11 CreateApiResponseParam对象属性

    参数

    是否必选

    类型

    值域

    说明

    para_name

    string

    参数名称

    mapping_name

    string

    绑定字段

    para_type

    int32

    参数类型 1:integer,2:string,3:long,4:double

    example_value

    string

    示例值

    description

    string

    描述

  • 请求示例
    POST /rest/gaia/dataapi/v1/api HTTP/1.1 
    Host: example.com 
    Content-Type: application/json 
    Accept: application/json 
    { 
        "api":{ 
    	   "name":"string", 
    	   "catalog_id":"string", 
    	   "api_path":"string", 
    	   "project_id":"string", 
    	   "security_level":"string", 
    	   "request_type":"string", 
               "description":"string" 
    	    }, 
    	   "input_param_definition":[ 
    		                     { 
    			             "para_name":"string", 
    			             "para_position":"string", 
    			             "para_type":"string", 
    			             "necessary":"integer", 
    			             "default_value":"string", 
    			             "example_value":"string", 
    			             "description":"string" 
    		                      } 
    	                            ], 
    	    "data_retrieval_logic":{ 
    		                    "connection_type":"string", 
    		                    "script_mode":{ 
    			                          "dataconnection_id":"string", 
    			                          "sql_para":"string", 
    			                          "total_size_switch":"integer", 
    			                          "total_size_sql":"string", 
    			                          "pagination":"integer", 
    			                          "order_param":[ 
    				                                 { 
    					"para_name":"string", 
    					"column_name":"string", 
    					"optional":"integer", 
    					"sort_type":"integer", 
    					"description":"string", 
    					"order_num":"integer" 
    				} 
    			] 
    		}, 
    		"config_mode":{ 
    			"data_asset_id":"string", 
    			"req_param":[ 
    				{ 
    					"api_para_name":"string", 
    					"mapping_name":"string", 
    					"condition_type":"string" 
    				} 
    			], 
    			"resp_param":[ 
    				{ 
    					"para_name":"string", 
    					"mapping_name":"string", 
    					"para_type":"integer", 
    					"example_value":"string", 
    					"description":"string" 
    				} 
    			], 
    			"order_param":[ 
    				{ 
    					"para_name":"string", 
    					"column_name":"string", 
    					"optional":"integer", 
    					"sort_type":"integer", 
    					"description":"string", 
    					"order_num":"integer" 
    				} 
    			] 
    		} 
    	} 
    }

响应

  • 响应参数
  • 响应示例
    HTTP/1.1 204 No Content 
    Date:Wed,19 Jul 2023 14:15:28 GMT 
    Server: example.com 
    Content-Type: application/json;charset=UTF8

状态码

表12 状态码

状态码

说明

204

操作成功。

400

参数错误。

403

鉴权失败。

404

rest接口没找到。

500

默认ServiceException异常码,应用内部错误。

操作危险级别

Minor

相关文档