ALIYUN::APIG::HttpApi

ALIYUN::APIG::HttpApi类型用于创建HTTP API。

语法

{
  "Type": "ALIYUN::APIG::HttpApi",
  "Properties": {
    "HttpApiName": String,
    "Protocols": List,
    "BasePath": String,
    "Description": String,
    "Type": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

HttpApiName

String

API 名称。

无。

Protocols

List

API 访问协议列表。

取值:

  • HTTP

  • HTTPS

BasePath

String

API 基础路径。

需要以/开头。

Description

String

API 描述。

无。

Type

String

HTTP API 的类型。

取值:

  • Http

  • Rest

  • WebSocket

  • HttpIngress

返回值

Fn::GetAtt

  • Environments:API 的发布环境信息。

  • HttpApiName:API 名称。

  • Type:HTTP API 的类型。

  • Protocols:API 访问协议列表。

  • Description:API 描述。

  • BasePath:API 基础路径。

  • HttpApiId:HTTP API ID。

示例

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  HttpApiName:
    Type: String
    Description:
      en: The name of the API.
    Required: true
    MinLength: 1
    MaxLength: 64
    Default: demo_api
  Type:
    Type: String
    Description:
      en: |-
        The type of HTTP API, Valid values:
        * Http
        * Rest
        * WebSocket
        * HttpIngress
    AllowedValues:
      - Http
      - Rest
      - WebSocket
      - HttpIngress
    Default: Http
    Required: false
  Protocols:
    AssociationPropertyMetadata:
      Parameter:
        Type: String
        Description:
          en: API protocol.
        AllowedValues:
          - HTTP
          - HTTPS
        Required: true
    AssociationProperty: List[Parameter]
    Type: Json
    Description:
      en: List of API Access Protocols.
    Required: true
    MaxLength: 2
    Default:
      - HTTP
  BasePath:
    Type: String
    Description:
      en: The base path of the API should start with a /.
    Required: false
    Default: /v1
Resources:
  ExtensionResource:
    Type: ALIYUN::APIG::HttpApi
    Properties:
      HttpApiName:
        Ref: HttpApiName
      Type:
        Ref: Type
      Protocols:
        Ref: Protocols
      BasePath:
        Ref: BasePath
Outputs:
  Environments:
    Description: Published Environmental Information of the API.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Environments
  HttpApiName:
    Description: The name of the API.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - HttpApiName
  Type:
    Description: The type of HTTP API
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Type
  Protocols:
    Description: List of API Access Protocols.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Protocols
  Description:
    Description: Description of API.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Description
  BasePath:
    Description: The base path of the API.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - BasePath
  HttpApiId:
    Description: The ID of the API.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - HttpApiId
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "HttpApiName": {
      "Type": "String",
      "Description": {
        "en": "The name of the API."
      },
      "Required": true,
      "MinLength": 1,
      "MaxLength": 64,
      "Default": "demo_api"
    },
    "Type": {
      "Type": "String",
      "Description": {
        "en": "The type of HTTP API, Valid values:\n* Http\n* Rest\n* WebSocket\n* HttpIngress"
      },
      "AllowedValues": [
        "Http",
        "Rest",
        "WebSocket",
        "HttpIngress"
      ],
      "Default": "Http",
      "Required": false
    },
    "Protocols": {
      "AssociationPropertyMetadata": {
        "Parameter": {
          "Type": "String",
          "Description": {
            "en": "API protocol."
          },
          "AllowedValues": [
            "HTTP",
            "HTTPS"
          ],
          "Required": true
        }
      },
      "AssociationProperty": "List[Parameter]",
      "Type": "Json",
      "Description": {
        "en": "List of API Access Protocols."
      },
      "Required": true,
      "MaxLength": 2,
      "Default": [
        "HTTP"
      ]
    },
    "BasePath": {
      "Type": "String",
      "Description": {
        "en": "The base path of the API should start with a /."
      },
      "Required": false,
      "Default": "/v1"
    }
  },
  "Resources": {
    "ExtensionResource": {
      "Type": "ALIYUN::APIG::HttpApi",
      "Properties": {
        "HttpApiName": {
          "Ref": "HttpApiName"
        },
        "Type": {
          "Ref": "Type"
        },
        "Protocols": {
          "Ref": "Protocols"
        },
        "BasePath": {
          "Ref": "BasePath"
        }
      }
    }
  },
  "Outputs": {
    "Environments": {
      "Description": "Published Environmental Information of the API.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Environments"
        ]
      }
    },
    "HttpApiName": {
      "Description": "The name of the API.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "HttpApiName"
        ]
      }
    },
    "Type": {
      "Description": "The type of HTTP API",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Type"
        ]
      }
    },
    "Protocols": {
      "Description": "List of API Access Protocols.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Protocols"
        ]
      }
    },
    "Description": {
      "Description": "Description of API.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Description"
        ]
      }
    },
    "BasePath": {
      "Description": "The base path of the API.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "BasePath"
        ]
      }
    },
    "HttpApiId": {
      "Description": "The ID of the API.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "HttpApiId"
        ]
      }
    }
  }
}