更新时间:2024-07-03 GMT+08:00

创建后端API脚本

功能介绍

在某个实例中创建后端API脚本。

URI

POST /v1/{project_id}/apic/instances/{instance_id}/livedata-scripts

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见API参考的“附录 > 获取项目ID”章节。

instance_id

String

实例ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

api_id

String

后端API编号

api_type

String

API类型

  • data:数据API

  • function:函数API

scripts

Array of LdApiScript objects

API脚本信息列表

表4 LdApiScript

参数

是否必选

参数类型

描述

ds_id

String

数据源编号,当api_type = data时,必选

ds_name

String

数据源名称

ds_type

String

数据源类型:

  • oracle:oracle数据源类型

  • mysql:mysql数据源类型

  • mongodb:mongodb数据源类型

  • redis:redis数据源类型

  • postgresql:postgresql/opengauss数据源类型

  • hive:hive数据源类型

  • mssql:sqlserver数据源类型

  • sqlserver:sqlserver数据源类型

  • dws:dws数据源类型

  • gauss100:gauss100数据源类型

  • zenith:zenith数据源类型

  • hana: hana数据源类型

  • clickhouse: clickhouse数据源类型

  • mrshive: mrshive数据源类型(tag:Site_hybrid)

  • dm : dameng数据源类型(tag:hcs)

  • opengauss : opengauss数据源类型(tag:hcs)

type

String

脚本类型

  • SQL:sql语句

  • SP:存储过程

object_name

String

返回对象。

最小长度:1

最大长度:32

content

String

API脚本内容

请对脚本进行base64编码

最小长度:1

最大长度:100000

enable_result_paging

Boolean

数据脚本是否结果分页,当api_type = data时有效

缺省值:false

enable_preparestatement

Boolean

数据脚本是否预编译,当api_type = data时有效

缺省值:false

created_time

String

后端API脚本创建时间

modified_time

String

后端API脚本修改时间

响应参数

状态码: 200

表5 响应Body参数

参数

参数类型

描述

name

String

后端API名称。

支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号,且只能以英文、汉字和数字开头。

最小长度:3

最大长度:100

path

String

后端API请求路径。

支持英文、数字、中划线、下划线、点等,且以斜杠(/)开头。

更新后端API时,status=4为后端API的已部署状态,该状态下后端API请求路径不能修改。

最小长度:2

最大长度:256

method

String

后端API请求方法。

支持GET、PUT、POST、DELETE

更新后端API时,status=4为后端API的已部署状态,该状态下后端API请求方法不能修改。

description

String

后端API描述。

不支持<,>字符

最小长度:0

最大长度:1000

version

String

后端API版本

支持英文,数字,下划线,中划线,点。

最小长度:1

最大长度:63

content_type

String

后端API返回类型

缺省值:json

api_signature_id

String

后端API为签名认证时绑定的签名密钥编号

最小长度:1

最大长度:64

roma_app_id

String

后端API归属的集成应用编号

更新后端API时,status=4为后端API的已部署状态,该状态下后端API归属的集成应用编号不能修改。

最小长度:1

最大长度:65

return_format

Boolean

API响应信息是否格式化

true: 对响应信息进行格式化

false:对响应信息格式化不进行格式化

缺省值:false

parameters

Array of LdApiParameter objects

后端API的请求参数列表

id

String

后端API编号

instance

String

后端API所属实例编号

type

String

后端API类型:

  • data:数据后端

  • function: 函数后端

status

Integer

后端API状态:

  • 1:待开发

  • 3:开发中

  • 4:已部署

created_time

String

后端API创建时间

modified_time

String

后端API修改时间

scripts

Array of LdApiScript objects

后端API脚本信息

roma_app_name

String

后端API归属的集成应用名称

表6 LdApiParameter

参数

参数类型

描述

name

String

参数名称:

  • 参数位于Headers、 Parameters时,用户自行定义,支持英文、数字、点、中划线、下划线,且需要英文开头,不区分大小写。

  • 参数位于Body时候,参数以application/json、application/xml、application/text为名,但实际是以请求body里的键值对作为参数名和参数值,比如请求消息样例,参数名为application/json,参数值为{"table":"apic01","id":"1"},后端取table:apic01,id:1这两个键值对作为入参。

  • 注意:定义参数不要重名,否则会覆盖掉,当Headers、Parameters重复时候,Parameters会被覆盖,当Parameters和Body里的键值对重复时候,Parameters会被覆盖。

最小长度:1

最大长度:32

in

String

该参数在调用API时候所放的位置:

  • Headers :放于请求头

  • Parameters :放于请求参数

  • Body:放于请求体

default

String

参数默认值

最大长度:4000

description

String

参数描述

不支持<,>字符

最小长度:0

最大长度:255

required

Boolean

参数是否必须。true:必须,false:不必须

缺省值:false

表7 LdApiScript

参数

参数类型

描述

ds_id

String

数据源编号,当api_type = data时,必选

ds_name

String

数据源名称

ds_type

String

数据源类型:

  • oracle:oracle数据源类型

  • mysql:mysql数据源类型

  • mongodb:mongodb数据源类型

  • redis:redis数据源类型

  • postgresql:postgresql/opengauss数据源类型

  • hive:hive数据源类型

  • mssql:sqlserver数据源类型

  • sqlserver:sqlserver数据源类型

  • dws:dws数据源类型

  • gauss100:gauss100数据源类型

  • zenith:zenith数据源类型

  • hana: hana数据源类型

  • clickhouse: clickhouse数据源类型

  • mrshive: mrshive数据源类型(tag:Site_hybrid)

  • dm : dameng数据源类型(tag:hcs)

  • opengauss : opengauss数据源类型(tag:hcs)

type

String

脚本类型

  • SQL:sql语句

  • SP:存储过程

object_name

String

返回对象。

最小长度:1

最大长度:32

content

String

API脚本内容

请对脚本进行base64编码

最小长度:1

最大长度:100000

enable_result_paging

Boolean

数据脚本是否结果分页,当api_type = data时有效

缺省值:false

enable_preparestatement

Boolean

数据脚本是否预编译,当api_type = data时有效

缺省值:false

created_time

String

后端API脚本创建时间

modified_time

String

后端API脚本修改时间

状态码: 400

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表12 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

{
  "api_id" : "bd42841c20184da6bbf457c6d8a06e37",
  "api_type" : "function",
  "scripts" : [ {
    "type" : "SQL",
    "object_name" : "fun",
    "content" : "ZnVuY3Rpb24gZXhlY3V0ZShkYXRhKSB7CiAgICByZXR1cm4gIkhlbGxvIHdvcmxkISIKfQ=="
  } ]
}

响应示例

状态码: 200

OK

{
  "content_type" : "json",
  "created_time" : "2020-09-18T09:25:59Z",
  "description" : "",
  "id" : "bd42841c20184da6bbf457c6d8a06e37",
  "instance" : "f0fa1789-3b76-433b-a787-9892951c620e",
  "method" : "GET",
  "modified_time" : "2020-09-18T09:25:59Z",
  "name" : "livedata_api_demo",
  "parameters" : [ ],
  "path" : "/test/function",
  "return_format" : false,
  "roma_app_id" : "98df09fb-d459-4cbf-83a7-2b55ca6f3d5d",
  "scripts" : [ {
    "type" : "SQL",
    "object_name" : "fun",
    "content" : "ZnVuY3Rpb24gZXhlY3V0ZShkYXRhKSB7CiAgICByZXR1cm4gIkhlbGxvIHdvcmxkISIKfQ==",
    "created_time" : "2020-09-19T06:29:35Z",
    "modified_time" : "2020-09-19T06:29:35Z"
  } ],
  "status" : 1,
  "type" : "",
  "version" : "1.0.1"
}

状态码: 400

Bad Request

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:id. Please refer to the support documentation"
}

状态码: 401

Unauthorized

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

状态码: 403

Forbidden

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

状态码: 404

Not Found

{
  "error_code" : "APIG.3081",
  "error_msg" : "authorizer with id: 0d982c1ac3da493dae47627b6439fc5c not found"
}

状态码: 500

Internal Server Error

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

状态码

状态码

描述

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

错误码

请参见错误码