更新时间:2023-11-29 GMT+08:00

部署后端API

功能介绍

在某个实例中部署后端API。

URI

POST /v2/{project_id}/apic/instances/{instance_id}/livedata-apis/{ld_api_id}/deploy

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

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

instance_id

String

实例ID

ld_api_id

String

后端API的编号

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

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

表3 请求Body参数

参数

是否必选

参数类型

描述

ld_api_id

String

后端API的编号

deploy_front_api

Boolean

是否自动发布API

  • true:部署完成后自动创建并发布前端API。此时auth_type,group_id,env_id,protocol必填。

  • false:部署完成后不创建前端API

缺省值:true

auth_type

String

认证方式

  • NONE:无认证

  • APP:APP认证

  • IAM:IAM认证

  • AUTHORIZER:自定义认证

authorizer_id

String

自定义认证编号。

认证方式auth_type = AUTHORIZER时必填

group_id

String

部署的前端API分组编号

env_id

String

部署的环境编号

protocol

String

请求协议

缺省值:HTTPS

backend_timeout

Integer

超时时间

path

String

请求路径

method

String

请求方式

cors

Boolean

是否支持跨域

  • true:支持

  • false:不支持

缺省值:false

roma_app_id

String

部署到前端的api归属的应用编号,与后端归属的应用编号保持一致

retry_count

String

服务集成请求后端服务的重试次数,默认为-1,范围[-1,10]

缺省值:-1

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

id

String

部署的编号

ld_api_id

String

部署的后端API编号

group_id

String

部署的前端API分组编号

env_id

String

部署的环境编号

api_id

String

部署的前端API编号

deploy_time

String

部署时间

api_definition

LdApiInfo object

自定义后端API详情

表5 LdApiInfo

参数

参数类型

描述

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)

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

错误描述

状态码: 409

表12 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表13 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

部署指定的自定义后端,并发布对应的前端API,认证方式为APP认证,请求方法为GET,请求协议为HTTPS

{
  "auth_type" : "APP",
  "authorizer_id" : "",
  "backend_timeout" : 5000,
  "cors" : false,
  "deploy_front_api" : true,
  "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
  "group_id" : "01ce7564a2544713b80c7c08eb85f5d0",
  "method" : "GET",
  "path" : "/test/function",
  "protocol" : "HTTPS",
  "roma_app_id" : "98df09fb-d459-4cbf-83a7-2b55ca6f3d5d"
}

响应示例

状态码: 200

OK

{
  "api_definition" : {
    "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-19T06:29:35Z",
    "name" : "livedata_api_demo",
    "parameters" : [ ],
    "path" : "/test/function",
    "return_format" : false,
    "roma_app_id" : "98df09fb-d459-4cbf-83a7-2b55ca6f3d5d",
    "roma_app_name" : "app-demo",
    "scripts" : [ {
      "type" : "SQL",
      "object_name" : "fun",
      "content" : "ZnVuY3Rpb24gZXhlY3V0ZShkYXRhKSB7CiAgICByZXR1cm4gIkhlbGxvIHdvcmxkISIKfQ==",
      "created_time" : "2020-09-19T06:29:35Z",
      "modified_time" : "2020-09-19T06:29:35Z"
    } ],
    "status" : 4,
    "type" : "function",
    "version" : "1.0.1"
  },
  "api_id" : "1d0432f1a82a49d08b9308ae7bd96ca6",
  "deploy_time" : "2020-09-19T06:58:13Z",
  "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
  "group_id" : "01ce7564a2544713b80c7c08eb85f5d0",
  "id" : "5e19590f54444d8a9b8fe698ce26e9fe",
  "ld_api_id" : "bd42841c20184da6bbf457c6d8a06e37"
}

状态码: 400

Bad Request

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:auth_type. 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.3084",
  "error_msg" : "The livedata API does not exist, id: bd42841c20184da6bbf457c6d8a06e37"
}

状态码: 409

Conflict

{
  "error_code" : "APIG.3479",
  "error_msg" : "the roma app used for deploy must be the same as the roma app of the ld api"
}

状态码: 500

Internal Server Error

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

状态码

状态码

描述

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

409

Conflict

500

Internal Server Error

错误码

请参见错误码