更新时间:2023-12-13 GMT+08:00

APIG.API

模型说明

API提供方把API接口配置在API网关中,开放后端能力。API分为两部分,第一部分为面向API使用者的API接口,定义了使用者如何调用这个API;第二部分面向API提供者,由API提供者定义这个API的真实的后端情况,定义了API网关如何去访问真实的后端服务。

模型属性

表1 模型定义属性说明

属性

是否必选

描述

mockInfo

mock后端详情

参数类型:APIG.MockInfo

取值说明:详见datatype定义

默认值:{}

使用建议:

reqMethod

API的请求方式

参数类型:string

取值说明:支持Method类型包括:GET, POST, PATCH, DELETE, OPTIONS, PUT, HEAD, ANY

默认值:GET

取值约束:可取"GET", "POST", "DELETE", "PUT", "PATCH", "HEAD", "OPTIONS", "ANY"

使用建议:

name

API分组的名称

参数类型:string

取值说明:用户自定义

取值约束:长度为3 - 64位的字符串,字符串由中文、英文字母、数字、_ 组成,且以英文字母开头

使用建议:

backendType

后端类型

参数类型:string

取值说明:HTTP:web后端,FUNCTION:函数工作流,MOCK:模拟的后端

默认值:HTTP

取值约束:可取"HTTP", "FUNCTION", "MOCK"

使用建议:

remark

API描述

参数类型:string

取值说明:API描述,字符长度不超过255

取值约束:长度不超过255

使用建议:

backendApi

web后端详情

参数类型:APIG.BackendApi

取值说明:详见datatype定义

默认值:{u'reqUri': u'unset', u'reqMethod': u'GET', u'urlDomain': u'unset', u'reqProtocol': u'HTTP'}

使用建议:

groupId

API所属的API分组

参数类型:HuaweiCloud.APIG.ApiGroup.Id

取值说明:支持使用已有或新建API分组。若使用新建的,需在模板中定义API分组对象并建立依赖关系。建议通过拖拽到API分组内自动生成

使用建议:1. 将该字段通过get_input函数传入,在AOS界面创建堆栈填写输入参数时可自动选择2. 通过get_reference获取由本堆栈创建的APIG.ApiGroup元素,使用设计器建立依赖关系时会自动指定3. 在APIG服务界面获取已经创建好的API分组ID

reqUri

API的访问地址

参数类型:string

取值说明:API的访问地址

取值约束:长度不超过255

使用建议:需要服从URI规范

authType

API的认证方式

参数类型:string

取值说明:NONE:无认证,APP:APP认证,IAM:IAM认证

默认值:IAM

取值约束:可取NONE,APP,IAM

使用建议:推荐使用IAM认证方式

matchMode

API的匹配方式

参数类型:string

取值说明:SWA:前缀匹配,NORMAL:正常匹配(绝对匹配)

默认值:NORMAL

取值约束:可取"SWA", "NORMAL"

使用建议:

cors

是否支持跨域访问

参数类型:boolean

取值说明:true-支持跨域访问;false-不支持跨域访问

默认值:False

使用建议:从安全角度考虑,一般不建议开启跨域访问,除非业务需要

funcInfo

函数计算后端详情

参数类型:APIG.FuncInfo

取值说明:详见datatype定义

默认值:{u'functionUrn': u'', u'invocationType': u'async'}

使用建议:

type

API类型

参数类型:string

取值说明:public-公有API,private-私有API

默认值:public

取值约束:可取"public", "private"

使用建议:

strategyId

API所使用的流程策略

参数类型:string

取值说明:支持使用已有或新建流控策略。若使用新建的,需在模板中定义API策略对象并建立依赖关系。建议通过拖拽连接API与API策略对接实现

使用建议:1. 将该字段通过get_input函数传入,在AOS界面创建堆栈填写输入参数时可自动选择2. 通过get_reference获取由本堆栈创建的APIG.Throttle元素,使用设计器建立依赖关系时会自动指定3. 在APIG服务界面获取已经创建好的API流控ID

reqProtocol

API的协议类型

参数类型:string

取值说明:支持 HTTP 和 HTTPS 两种,HTTP-仅支持HTTP协议;HTTPS-仅支持HTTPS协议;BOTH-同时支持两种协议

默认值:HTTP

取值约束:可取""HTTP", "HTTPS", "BOTH"

使用建议:如果涉及敏感信息的传递,建议使用HTTPS

关联关系

表2 关联关系说明

关系说明

关联节点

关联关系

APIG.Throttle

被包含关系

APIG.ApiGroup

输出

属性

参数类型

描述

reqUri

string

API的uri

reqMethod

string

访问API的HTTP Method

refID

string

API的名称

reqProtocol

string

访问API使用的协议类型

blueprint样例

inputs:
  apiName:
    default: api321b
  apigroupName:
    default: test_group321b
  throttleName:
    default: throttle321
node_templates:
  throttle1:
    type: HuaweiCloud.APIG.Throttle
    properties:
      name: 
        get_input: throttleName
      remark: test throttle of aos plugin
      apiCallLimits: 10
      appCallLimits: 7
      userCallLimits: 9
      timeInterval: 100
      timeUnit: MINUTE     
  api-group1:
    properties:
      name:
        get_input: apigroupName
      remark: test group of aos plugin
    type: HuaweiCloud.APIG.ApiGroup
  api1:
    properties:
      authType: NONE
      backendApi:
        remark: test backend
        reqMethod: GET
        reqProtocol: HTTP
        reqUri: '/test/{aaa}'
        timeout: 10000
        urlDomain: 192.145.47.226:12346
      backendType: HTTP
      cors: false
      groupId:
        get_attribute:
          - api-group1
          - refID
      matchMode: NORMAL
      name:
        get_input: apiName
      remark: test api of aos plugin
      reqMethod: GET
      reqProtocol: HTTP
      reqUri: '/test/{aaa}'
      strategyId: 
        get_attribute:
          - throttle1
          - refID
    requirements:
      - groupId:
          node: api-group1
      - strategyId:
          node: throttle1
    type: HuaweiCloud.APIG.API
tosca_definitions_version: huaweicloud_tosca_version_1_0