Updated on 2023-06-29 GMT+08:00

Creating a Backend API Script

Function

This API is used to create a backend API script in an instance.

URI

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

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain the project ID, see Appendix > Obtaining a Project ID in the ROMA Connect API Reference.

instance_id

Yes

String

Instance ID.

ld_api_id

Yes

String

Backend API ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token, which can be obtained by calling the IAM API (value of X-Subject-Token in the response header).

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

api_type

No

String

API type.

  • data: a data API

  • function: a function API

scripts

No

Array of LdApiScriptBase objects

API script information list.

Table 4 LdApiScriptBase

Parameter

Mandatory

Type

Description

ds_id

No

String

Data source ID. This parameter is mandatory only if api_type is set to data.

ds_name

No

String

Data source name.

ds_type

No

String

Data source type.

  • oracle: Oracle data source type

  • mysql: MySQL data source type

  • mongodb: MongoDB data source type

  • redis: Redis data source type

  • postgresql: PostgreSQL/OpenGauss data source type

  • hive: Hive data source type

  • mssql: SQL Server data source type

  • sqlserver: SQL Server data source type

  • dws: DWS data source type

  • gauss100: GaussDB 100 data source type

  • zenith: zenith data source type

type

No

String

Script type.

  • SQL: SQL statement

  • SP: stored procedure

object_name

Yes

String

Returned object.

Minimum: 1

Maximum: 32

content

Yes

String

API script content.

Perform Base64 encoding on the script.

Minimum: 1

Maximum: 100000

enable_result_paging

No

Boolean

Indicates whether to display the data script result on multiple pages. This parameter is mandatory only if api_type is set to data.

Default: false

enable_preparestatement

No

Boolean

Indicates whether to pre-compile the data script. This parameter is mandatory only if api_type is set to data.

Default: false

Response Parameters

Status code: 200

Table 5 Response body parameters

Parameter

Type

Description

name

String

Backend API name.

Must start with a letter or digit and can include letters, digits, and special characters -_./():

Minimum: 3

Maximum: 100

path

String

Backend API request path.

Must start with a slash (/) and can include letters, digits, hyphens (-), underscores (_), and periods (.).

Minimum: 2

Maximum: 256

method

String

Backend API request method, which can be GET, PUT, POST, or DELETE.

description

String

Backend API description, which cannot contain < and >.

Minimum: 0

Maximum: 1000

version

String

Backend API version, which contains 2 to 16 characters excluding < and >.

Minimum: 2

Maximum: 64

content_type

String

Type of the returned backend API.

Default: json

api_signature_id

String

ID of the signature key bound to the API for signature authentication

Minimum: 1

Maximum: 64

roma_app_id

String

ID of the integration application to which the backend API belongs.

Minimum: 1

Maximum: 65

return_format

Boolean

Indicates whether to format the API response information.

true: The response information is formatted.

false: The response information is not formatted.

Default: false

parameters

Array of LdApiParameter objects

Backend API request parameters.

id

String

Backend API ID.

instance

String

ID of the instance to which the backend API belongs.

type

String

Backend API type:

  • data

  • function

status

Integer

Backend API status:

  • 1: to be developed

  • 3: developing

  • 4: deployed

created_time

String

Time when the backend API is created.

modified_time

String

Time when the backend API is modified.

scripts

Array of LdApiScript objects

Backend API script.

roma_app_name

String

Name of the integration application to which the backend API belongs.

Table 6 LdApiParameter

Parameter

Type

Description

name

String

Parameter name.

  • If the parameter is located in Headers or Parameters, the value can contain letters, digits, periods (.), hyphens (-), and underscores (_), and must start with a letter. The value is case-insensitive.

  • If the parameter is located in Body, it is named application/json, application/xml, or application/text. However, the key-value pair in Body is used as the parameter name and parameter value. For example, if the parameter name is application/json and the parameter value is {"table":"apic01","id":"1"}, the backend uses table:apic01 and id:1 as input parameters.

  • Note: The parameter name must be unique. Otherwise, the parameters will be overwritten. When the parameters in Headers and Parameters are duplicate, the parameters will be overwritten. When the key-value pairs in Parameters and Body are duplicate, the parameters will be overwritten.

Minimum: 1

Maximum: 32

in

String

Position of the parameter during API calling:

  • Headers

  • Parameters

  • Body

default

String

Default value.

Maximum: 4000

description

String

Parameter description, which cannot contain < and >.

Minimum: 0

Maximum: 255

required

Boolean

Whether the parameter is mandatory. true: The parameter is mandatory. false: The parameter is optional.

Default: false

Table 7 LdApiScript

Parameter

Type

Description

ds_id

String

Data source ID. This parameter is mandatory only if api_type is set to data.

ds_name

String

Data source name.

ds_type

String

Data source type.

  • oracle: Oracle data source type

  • mysql: MySQL data source type

  • mongodb: MongoDB data source type

  • redis: Redis data source type

  • postgresql: PostgreSQL/OpenGauss data source type

  • hive: Hive data source type

  • mssql: SQL Server data source type

  • sqlserver: SQL Server data source type

  • dws: DWS data source type

  • gauss100: GaussDB 100 data source type

  • zenith: zenith data source type

type

String

Script type.

  • SQL: SQL statement

  • SP: stored procedure

object_name

String

Returned object.

Minimum: 1

Maximum: 32

content

String

API script content.

Perform Base64 encoding on the script.

Minimum: 1

Maximum: 100000

enable_result_paging

Boolean

Indicates whether to display the data script result on multiple pages. This parameter is mandatory only if api_type is set to data.

Default: false

enable_preparestatement

Boolean

Indicates whether to pre-compile the data script. This parameter is mandatory only if api_type is set to data.

Default: false

created_time

String

Time when the backend API script is created.

modified_time

String

Time when the backend API script is modified.

Status code: 400

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 401

Table 9 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 403

Table 10 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 404

Table 11 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 500

Table 12 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Example Requests

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

Example Responses

Status code: 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" : "function",
  "version" : "1.0.1"
}

Status code: 400

Bad Request

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

Status code: 401

Unauthorized

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

Status code: 403

Forbidden

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

Status code: 404

Not Found

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

Status code: 500

Internal Server Error

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

Status Codes

Status Code

Description

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.