文档首页 > > API参考> API> API管理> 注册API

注册API

分享
更新时间: 2019/09/27 GMT+08:00

功能介绍

添加一个API,API即一个服务接口,具体的服务能力。

API分为两部分,第一部分为面向API使用者的API接口,定义了使用者如何调用这个API。第二部分面向API提供者,由API提供者定义这个API的真实的后端情况,定义了API网关如何去访问真实的后端服务。

API的真实后端服务目前支持三种类型:传统的HTTP/HTTPS形式的web后端、函数工作流、MOCK。

URI

HTTP/HTTPS请求方法以及URI如下表所示。

表1 HTTP/HTTPS请求方法以及URI

请求方法

URI

POST

/v1.0/apigw/apis

请求消息

表2 参数说明

参数

是否必选

类型

说明

group_id

String

API所属的分组编号

name

String

API名称

长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、“_”组成,且只能以英文或中文开头。

说明:

中文字符必须为UTF-8或者unicode编码。

type

Integer

API类型:

  • 1:公有API
  • 2:私有API

version

String

API的版本

字符长度不超过16

req_protocol

String

API的请求协议:

  • HTTP
  • HTTPS
  • BOTH:同时支持HTTP和HTTPS

默认:HTTPS

req_method

String

API的请求方式:

  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • PATCH
  • OPTIONS
  • ANY

req_uri

String

API的访问地址

说明:

需要服从URI规范。

match_mode

String

API的匹配方式:

  • SWA:前缀匹配
  • NORMAL:正常匹配(绝对匹配)

默认:NORMAL

remark

String

API描述

字符长度不超过255

说明:

中文字符必须为UTF-8或者unicode编码。

auth_type

String

API的认证方式:

  • NONE:无认证
  • APP:APP认证
  • IAM:IAM认证

backend_type

String

后端类型:

  • HTTP:web后端
  • FUNCTION:函数工作流
  • MOCK:模拟的后端

tag

String

标签

可以打servicename的标签和其他标签

cors

Bool

是否支持跨域

  • TRUE:支持
  • FALSE:不支持

默认:FALSE

body_remark

String

API请求体描述,可以是请求体示例、媒体类型、参数等信息

字符长度不超过20480

说明:

中文字符必须为UTF-8或者unicode编码。

result_normal_sample

String

正常响应示例,描述API的正常返回信息

字符长度不超过20480

说明:

中文字符必须为UTF-8或者unicode编码。

result_failure_sample

String

失败返回示例,描述API的异常返回信息

字符长度不超过20480

说明:

中文字符必须为UTF-8或者unicode编码。

backend_api

backend_type = HTTP时必填

字典数据类型

web后端详情

mock_info

backend_type = MOCK时必填

字典数据类型

mock后端详情

func_info

backend_type = FUNCTION时必填

字典数据类型

函数工作流后端详情

req_params

字典数据类型

API的请求参数列表

backend_params

字典数据类型

API的后端参数列表

policy_https

backend_type = HTTP时选填

字典数据类型

web策略后端列表。

policy_mocks

backend_type = MOCK时选填

字典数据类型

mock策略后端列表

policy_functions

backend_type = FUNCTION时选填

字典数据类型

函数工作流策略后端列表

表3 backend_api参数说明

参数

是否必选

类型

说明

url_domain

后端服务不使用VPC通道时,必选

String

后端服务的地址。

由域名(或IP地址)和端口号组成,总长度不超过255。格式为域名:端口(如:apig.example.com:7443)。如果不写端口,则HTTPS默认端口号为443, HTTP默认端口号为80。

支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、“_”、“-”组成,且只能以英文开头。

version

String

web后端版本

字符长度不超过16

req_protocol

String

请求协议:

  • HTTP
  • HTTPS

req_method

String

请求方式:

  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • PATCH
  • OPTIONS
  • ANY

req_uri

String

请求地址

总长度不超过512,且满足URI规范。

支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、“_”、“-”组成,且只能以英文开头。

说明:

需要服从URI规范。

timeout

Integer

API网关请求后端服务的超时时间,最大60000,最小为1

单位:毫秒

默认值:45000,请求参数值不在合法范围内时将使用默认值

remark

String

描述

字符长度不超过255

说明:

中文字符必须为UTF-8或者unicode编码。

vpc_status

Integer

是否使用VPC通道:

  • 1 : 使用VPC通道
  • 2 : 不使用VPC通道

vpc_info

如果vpc_status=1,则这个字典类型为必填信息

字典类型

VPC通道详情

表4 VPC通道参数说明

参数

是否必选

类型

说明

vpc_id

String

VPC通道编号

vpc_proxy_host

String

代理主机

表5 mock_info参数说明

参数

是否必选

类型

说明

result_content

String

返回结果

version

String

版本

字符长度不超过64

remark

String

描述信息

长度不超过255个字符

说明:

中文字符必须为UTF-8或者unicode编码。

表6 func_info参数说明

参数

是否必选

类型

说明

function_urn

String

函数URN

invocation_type

String

调用类型:async|sync (异步|同步)

timeout

Integer

API网关请求函数服务的超时时间,最大60000,最小为1

单位:毫秒

默认值:45000,请求参数值不在合法范围内时将使用默认值

version

String

版本信息

字符长度不超过64

remark

String

描述信息

长度不超过255个字符

说明:

中文字符必须为UTF-8或者unicode编码。

表7 req_params参数说明

参数

是否必选

类型

说明

name

String

参数名称

长度为1 ~ 32位的字符串,字符串由英文字母、数字、“_”、“-”、“.”组成,且只能以英文开头。

type

String

参数类型:

  • STRING
  • NUMBER

location

String

参数位置:

  • PATH
  • QUERY
  • HEADER

default_value

String

参数默认值

sample_value

String

参数示例值

required

Integer

是否必须:

  • 1:是
  • 2:否

lacation为PATH时,required默认为1,其他场景required默认为2

valid_enable

Integer

是否开启校验:

  • 1:开启校验
  • 2:不开启校验

默认为2

remark

String

描述

字符长度不超过255

说明:

中文字符必须为UTF-8或者unicode编码。

enumerations

String

参数枚举值

min_num

Integer

参数最小值(参数类型为NUMBER时有效)

max_num

Integer

参数最大值(参数类型为NUMBER时有效)

min_size

Integer

参数最小长度

max_size

Integer

参数最大长度

regular

String

正则校验规则(暂不支持)

json_schema

String

JSON校验规则(暂不支持)

表8 backend_params参数说明

参数

是否必选

类型

说明

name

String

参数名称

长度为1 ~ 32位的字符串,字符串由英文字母、数字、“_”、“-”、“.”组成,且只能以英文开头。

location

String

参数位置:

  • PATH
  • QUERY
  • HEADER

origin

String

参数类别:

  • REQUEST
  • CONSTANT
  • SYSTEM

value

String

参数值

字符长度不超过255

类别为REQUEST时,值为req_params中的参数名称;

类别为CONSTANT时,值为参数真正的值;

类别为SYSTEM时,值为网关参数名称

remark

String

描述

字符长度不超过255

说明:

中文字符必须为UTF-8或者unicode编码。

表9 policy_https参数说明

参数

是否必选

类型

说明

name

String

策略后端名称

长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、“_”组成,且只能以中文或英文开头。

url_domain

后端服务不使用VPC通道时,必选

String

策略后端的Endpoint。

由域名(或IP地址)和端口号组成,总长度不超过255。格式为域名:端口(如:apig.huaweicloud.com:7443)。如果不写端口,则HTTPS默认端口号为443, HTTP默认端口号为80。

支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、“_”、“-”组成,且只能以英文开头。

req_protocol

String

请求协议:

  • HTTP
  • HTTPS

req_method

String

请求方式:

  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • PATCH
  • OPTIONS
  • ANY

req_uri

String

请求地址

总长度不超过512,且满足URI规范。

支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、“_”、“-”组成,且只能以英文开头。

说明:

需要服从URI规范。

timeout

Integer

API网关请求后端服务的超时时间,最大60000,最小为1

单位:毫秒

默认值:45000,请求参数值不在合法范围内时将使用默认值

vpc_status

Integer

是否使用VPC通道:

  • 1 : 使用VPC通道
  • 2 : 不使用VPC通道

vpc_info

如果vpc_status=1,则这个字典类型为必填信息

字典类型

VPC通道详情

effect_mode

String

关联的策略组合模式

  • ALL
  • ANY

conditions

字典数据类型

策略条件列表

backend_params

字典数据类型

后端参数列表

表10 policy_mocks参数说明

参数

是否必选

类型

说明

name

String

策略后端名称

长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、“_”组成,且只能以中文或英文开头。

result_content

String

返回结果

effect_mode

String

关联的策略组合模式

  • ALL
  • ANY

conditions

字典数据类型

策略条件列表

backend_params

字典数据类型

后端参数列表

表11 policy_functions参数说明

参数

是否必选

类型

说明

name

String

策略后端名称

长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、“_”组成,且只能以中文或英文开头。

function_urn

String

函数URN

invocation_type

String

调用类型:async|sync (异步|同步)

timeout

Integer

API网关请求函数服务的超时时间,最大60000,最小为1

单位:毫秒

默认值:45000,请求参数值不在合法范围内时将使用默认值

version

String

版本信息

字符长度不超过64

effect_mode

String

关联的策略组合模式

  • ALL
  • ANY

conditions

字典数据类型

策略条件列表

backend_params

字典数据类型

后端参数列表

表12 conditions参数说明

参数

是否必选

类型

说明

condition_type

策略类型为param时必选

String

策略条件:

  • exact:绝对匹配
  • enum:枚举
  • pattern:正则

condition_value

String

策略值

condition_origin

String

策略类型:

  • param:参数
  • source:源IP

req_param_name

策略类型为param时必选

String

关联的请求参数对象名称

请求消息样例:

{
  "auth_type": "app",
  "backend_api": {
    "req_method": "get",
    "req_protocol": "http",
    "req_uri": "/test",
    "timeout": 1000,
    "url_domain": "xxxxxxxxxxx"
  },
  "backend_params": [
    {
      "location": "query",
      "name": "project_id",
      "origin": "request",
      "value": "project_id"
    },
    {
      "location": "query",
      "name": "city",
      "origin": "request",
      "value": "city"
    }
  ],
  "backend_type": "http",
  "group_id": "f71f69876f90456ca6fd18ed012fdc11",
  "name": "test",
  "req_method": "get",
  "req_params": [
    {
      "location": "path",
      "name": "project_id",
      "required": 1,
      "type": "string"
    },
    {
      "location": "query",
      "name": "city",
      "required": 2,
      "type": "string"
    }
  ],
  "req_uri": "/test/{project_id}",
  "tag": "test",
  "type": 1,
  "result_normal_sample": "hello world!"
}

响应消息

表13 参数说明

参数

类型

说明

id

String

API编号

name

String

API名称

group_id

String

API所属分组的编号

group_name

String

API所属分组的名称

status

Integer

API的状态

type

Integer

API类型

version

String

API版本

req_protocol

String

API访问协议

req_method

String

API请求方式

req_uri

String

API访问地址

auth_type

String

API认证方式

match_mode

String

API匹配方式

register_time

Timestamp

API注册时间

update_time

Timestamp

API修改时间

remark

String

API描述

bakend_type

String

后端类型

arrange_necessary

Integer

是否需要编排

tag

String

标签

cors

Bool

是否支持跨域访问

body_remark

String

API请求体描述,可以是请求体示例、媒体类型、参数等信息

result_normal_sample

String

正常响应示例,描述API的正常返回信息

result_failure_sample

String

失败返回示例,描述API的异常返回信息

backend_api

字典数据类型

后端服务:web后端详情

mock_info

字典数据类型

后端服务:MOCK详情

func_info

字典数据类型

后端服务:函数工作流后端详情

req_params

字典数据类型

API的请求参数列表

backend_params

字典数据类型

API的后端参数列表

policy_https

字典数据类型

web策略后端列表

policy_mocks

字典数据类型

mock策略后端列表

policy_functions

字典数据类型

函数工作流策略后端列表

表14 backend_api参数说明

参数

类型

说明

id

String

编号

status

Integer

状态

url_domain

String

后端endpoint

version

String

版本

req_protocol

String

访问协议

req_method

String

访问方式

req_uri

String

访问地址

timeout

Integer

访问超时时间,单位:毫秒

register_time

Timestamp

注册时间

update_time

Timestamp

修改时间

remark

String

描述

vpc_status

String

是否使用VPC通道

vpc_info

String

VPC通道信息

表15 mock_info参数说明

参数

类型

说明

id

String

编号

status

Integer

状态

version

String

版本

result_content

String

返回结果

register_time

Timestamp

注册时间

update_time

Timestamp

修改时间

remark

String

描述

表16 func_info参数说明

参数

类型

说明

id

String

编号

status

Integer

状态

version

String

版本

function_urn

String

函数URN

invocation_type

String

调用类型:async|sync

register_time

Timestamp

注册时间

update_time

Timestamp

更新时间

timeout

Integer

超时时间,单位:毫秒

remark

String

描述

表17 req_params参数说明

参数

类型

说明

id

String

参数编号

name

String

参数名称

type

String

参数类型

location

String

参数位置

default_value

String

参数默认值

sample_value

String

参数示例值

required

Integer

是否必须

valid_enable

Integer

是否开启校验

remark

String

描述

enumerations

String

参数枚举值

min_num

Integer

参数最小值(参数类型为NUMBER时有效)

max_num

Integer

参数最大值(参数类型为NUMBER时有效)

min_size

Integer

参数最小长度

max_size

Integer

参数最大长度

regular

String

正则校验规则(暂不支持)

json_schema

String

JSON校验规则(暂不支持)

表18 backend_params参数说明

参数

类型

说明

id

String

参数编号

req_param_id

String

对应的请求参数编号

name

String

参数名称

location

String

参数位置

origin

String

参数类别

value

String

参数值

remark

String

描述

表19 policy_https参数说明

参数

类型

说明

id

String

编号

name

String

策略后端名称

url_domain

String

策略后端endpoint

req_protocol

String

访问协议

req_method

String

访问方式

req_uri

String

访问地址

timeout

Integer

访问超时时间,单位:毫秒

vpc_status

String

是否使用VPC通道

vpc_info

String

VPC通道信息

effect_mode

String

关联的策略组合模式

conditions

字典数据类型

策略条件列表

backend_params

字典数据类型

后端参数列表

表20 policy_mocks参数说明

参数

类型

说明

id

String

编号

name

String

策略后端名称

result_content

String

返回结果

effect_mode

String

关联的策略组合模式

conditions

字典数据类型

策略条件列表

backend_params

字典数据类型

后端参数列表

表21 policy_functions参数说明

参数

类型

说明

id

String

编号

name

String

策略后端名称

version

String

版本

function_urn

String

函数URN

invocation_type

String

调用类型:async|sync

timeout

Integer

超时时间,单位:毫秒

effect_mode

String

关联的策略组合模式

conditions

字典数据类型

策略条件列表

backend_params

字典数据类型

后端参数列表

表22 conditions参数说明

参数

类型

说明

id

String

编号

condition_type

String

策略条件

condition_value

String

策略值

condition_origin

String

策略类型

req_param_name

String

关联的请求参数对象名称

req_param_id

String

关联的请求参数对象编号

req_param_location

String

关联的请求参数对象位置

响应消息样例:





































































{
  "name": "test",
  "type": 1,
  "version": "V0.0.1",
  "req_protocol": "HTTPS",
  "req_method": "GET",
  "req_uri": "/test/{tenant_id}",
  "auth_type": "APP",
  "tag": "test",
  "cors": false,
  "match_mode": "NORMAL",
  "backend_type": "HTTP",
  "group_id": "f71f69876f90456ca6fd18ed012fdc11",
  "result_normal_sample": "hello world!",
  "id": "81efcfd94b8747a0b21e8c04144a4e8c",
  "status": 1,
  "arrange_necessary": 2,
  "register_time": "2018-08-15T03:41:11.0239936Z",
  "update_time": "2018-08-15T03:41:11.0239936Z",
  "group_name": "group0002",
  "backend_api": {
    "url_domain": "xxxxxxxxxxx",
    "req_protocol": "HTTP",
    "req_method": "GET",
    "req_uri": "/test",
    "timeout": 1000,
    "vpc_status": 2,
    "id": "3442ffd031814e3a8f133a9f1ea08453",
    "status": 1,
    "register_time": "2018-08-15T03:41:11.1019236Z",
    "update_time": "2018-08-15T03:41:11.1019236Z"
  },
  "req_params": [
    {
      "name": "tenant_id",
      "type": "STRING",
      "location": "PATH",
      "required": 1,
      "valid_enable": 2,
      "id": "593c5560e0924e00af08fb458f850ecb"
    },
    {
      "name": "city",
      "type": "STRING",
      "location": "QUERY",
      "required": 2,
      "valid_enable": 2,
      "id": "e0b91bc81ae54f8ea850848d782d6e1e"
    }
  ],
  "backend_params": [
    {
      "name": "tenant_id",
      "location": "QUERY",
      "origin": "REQUEST",
      "value": "tenant_id",
      "id": "44e03de2351e43a8b18ba9ec1e71d2e9",
      "req_param_id": "593c5560e0924e00af08fb458f850ecb"
    },
    {
      "name": "city",
      "location": "QUERY",
      "origin": "REQUEST",
      "value": "city",
      "id": "b60fbcb5b86f4f5c8705c445b9bd6325",
      "req_param_id": "e0b91bc81ae54f8ea850848d782d6e1e"
    }
  ],
  "policy_https": [{
    "conditions": [{
      "id": "44e03de2351e43a8b18ba9ec1e71d2e9",
      "condition_type": "pattern",
      "condition_value": "^[0-9]$",
      "condition_origin": "param",
      "req_param_name": "project_id",
      "req_param_id": "b60fbcb5b86f4f5c8705c445b9sda325",
      "req_param_location": "PATH"
    }],
    "backend_params": [{
      "name": "project_id",
      "value": "bbbb",
      "location": "QUERY",
      "origin": "REQUEST",
      "id": "44e03de2351e43a8b18ba9ec1e71d2e8",
      "req_param_id": "593c5560e0924e00af08fb458f850ecb"
    }],
    "effect_mode": "ANY",
    "id": "44e03de2351e43a8b18ba9ec1e71d2e8",
    "name": "policy001",
    "req_method": "GET",
    "req_protocol": "http",
    "req_uri": "/test/policy",
    "timeout": 10000,
    "url_domain": "xxxxxxxxxxx",
    "vpc_status": 2
  }]
}

状态码

表23 返回消息说明

状态码

说明

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Server Internal Error

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区