ALIYUN::ApiGateway::Api を使用して API を作成できます。

構文

  1. { Type : ALIYUN::ApiGateway::Api”, Properties : { ErrorCodeSamples : List, Description : String, ServiceConfig : Map, SystemParameters : List, ServiceParameters : List, OpenIdConnectConfig : Map, RequestConfig : Map, AuthType : String, Visibility : String, ResultSample : String, ResultType : String, ServiceParametersMap : List, FailResultSample : String, ApiName : String, GroupId : String, RequestParameters : List, ConstParameters : List }}

プロパティ

名前 データ型 必須/省略可能 更新可/不可 説明
ServiceConfig Map 必須 ゲートウェイからバックエンドサービスに送信される API リクエストの設定項目
RequestConfig Map 必須 コンシューマーからゲートウェイに送信された API リクエストの設定項目
Visibility String 必須

API がパブリックかどうかを示します。 オプションの値は以下のとおりです。

  • PUBLIC: API はパブリックです。 この属性が PUBLIC に設定されている場合、この API のオンライン環境の定義は、コンソールの [Discover API] ページですべてのユーザーに表示されます。
  • PRIVATE: API はプライベートです。 この属性が PRIVATE に設定されている場合、API グループがクラウドマーケットプレイスで利用可能になると、プライベートタイプの API は利用できなくなります。
ResultSample String 必須 バックエンドサービスによって返される応答のサンプル
ResultType String 必須 バックエンドサービスによって返される応答の形式です。 現在許可されている形式は JSON、TEXT、BINARY、XML、HTML、および PASSTHROUGH です。 デフォルト値は JSON です。
ApiName String 必須 API 名です。 名前はグループ内で一意である必要があります。 4 - 50 文字の文字列である必要があります。漢字、英字、数字、および下線 (_) を含めることができますが、先頭文字は英字または漢字にします。
GroupId String 必須 不可 指定したグループの ID
ErrorCodeSamples List 省略可能 バックエンドサービスから返されるエラーコードのサンプル
Description String 省略可能 API の説明、最大 180 文字
SystemParameters List 省略可能 API のシステムパラメーター
ServiceParameters List 省略可能 ゲートウェイからバックエンドサービスに送信される API リクエストのパラメーターの説明
OpenIdConnectConfig Map 省略可能 サードパーティ認証の OpenId Connect の設定項目
AuthType String 省略可能

API セキュリティ認証タイプです。 オプションの値は以下のとおりです。

  • APP: API を呼び出せるのは許可された APP だけです。
  • ANONYMOUS: API は匿名で呼び出すことができます。 このようなモードでは、以下の点に注意する必要があります。

    この API サービス情報を取得できるユーザーは、この API を呼び出すことができます。 ゲートウェイは発信者の ID を認証しないため、個々のユーザーにトラフィック制限を設定することはできません。 この API を有効にする場合は、API ベースのスロットリングを設定します。 匿名 API はクラウドマーケットプレイスでは利用可能にしないことを推奨します。 ゲートウェイは、発信者のトラフィックを個別に取得することも呼び出し数を制御することもできません。 この API を含むグループを Cloud Marketplace に追加する場合は、この API を別のグループに移動するか、そのタイプを PRIVATE に設定するか、APP 認証方法を選択することを推奨します。

  • APPOPENID: サードパーティ認証の OpenID Connect をサポートします。 API を呼び出せるのは許可された APP だけです。 この属性が APPOPENID に設定されている場合、OpenIdConnectConfig パラメーターは必須です。
ServiceParametersMap List 省略可能 コンシューマーからゲートウェイに送信されるリクエストのパラメーターと、ゲートウェイからバックエンドサービスに送信されるリクエストのパラメーターのマッピング
FailResultSample String 省略可能 バックエンドサービスから返される応答の失敗のサンプル
RequestParameters List 省略可能 コンシューマーからゲートウェイに送信される API リクエストのパラメーターの説明
ConstParameters List 省略可能 指定された API の定数パラメーター

ErrorCodeSample の構文

  1. ErrorCodeSample : { Message : String, Code : String, Description : String}

ErrorCodeSample のプロパティ

名前 データ型 必須/省略可能 更新可/不可 説明
Message String 必須 エラーメッセージ
Code String 必須 エラーコード
Description String 省略可能 エラーの説明

ServiceConfig の構文

  1. ServiceConfig : { ServiceTimeOut : Integer, VpcConfig : Map MockResult : String, ServicePath : String, ServiceProtocol : String, ServiceVpcEnable : String, ServiceAddress : String, ContentTypeValue : String, ServiceHttpMethod : String, ContentTypeCatagory : String, AoneAppName : String, Mock : String}

ServiceConfig のプロパティ

名前 データ型 必須/省略可能 更新可/不可 説明
ServiceTimeOut integer 必須 バックエンドサービスのミリ秒単位のタイムアウト時間
ServiceAddress String 必須 バックエンドサービス呼び出しアドレスです。 完全なバックエンドサービスアドレスが http://api.a.com:8080/object/add?key1=value1&key2=value2 の場合、ServiceAddress は http://api.a.com:8080 です。
ServicePath String 必須 バックエンドサービスの呼び出しパスです。 完全なバックエンドサービスアドレスが http://api.a.com:8080/object/add?key1=value1&key2=value2 の場合、ServicePath は /object/add です。
ServiceProtocol String 必須 バックエンドサービスのプロトコルタイプで、現在は HTTP である必要があります。 デフォルト値は HTTP です。
ServiceHttpMethod String 必須 バックエンドサービスの HTTP 呼び出しメソッドです。オプションの値は、GET、POST、DELETE、PUT、HEADER、TRACE、PATCH、CONNECT、および OPTIONS です。 デフォルト値は GET です。
ContentTypeCatagory String 必須

バックエンドサービスの HTTP サービスを呼び出すときにContentTypeヘッダーの値を取得する戦略です。 オプションの値は以下のとおりです。

  • DEFAULT: API ゲートウェイのデフォルト値を使用します。
  • CUSTOM: カスタマイズ値を使用します。
  • CLIENT: クライアントのアップストリームの ContentType のヘッダーを使用します。

デフォルト値は CLIENT です。

ContentTypeValue String 省略可能 バックエンドサービスの HTTP サービスを呼び出し、ContentTypeCatagory が DEFAULT または CUSTOM に設定されている場合の ContentType ヘッダーの値
Mock String 必須 Mock モードを使用するかどうかを示します。 オプションの値: TRUE および FALSE。 デフォルト値は FALSE です。
MockResult String 省略可能 Mock モードが有効な場合に返される結果
ServiceVpcEnable String 必須 VPC チャネルが有効かどうかを示します。 オプションの値は TRUE と FALSE です。 VPC チャネルは VPC 認証が正常に追加されないと有効にできません。 デフォルト値は FALSE です。
VpcConfig Map 省略可能 VPC チャネルが有効な場合の VPC チャネルの設定項目

VpcConfi の構文

  1. VpcConfig : { InstanceId : String, VpcId : String, Port : Integer,}

VpcConfig のプロパティ

名前 データ型 必須/省略可能 更新可/不可 説明
InstanceId String 必須 VPC 内のインスタンス (ECS/Server Load Balancer) の ID
VpcId String 必須 VPC ID
Port integer 必須 インスタンスに対応するポートの数

SystemParameters の構文

  1. SystemParameter : { Location : String, ParameterName : String, Description : String, DemoValue : String, ServiceParameterName : String}

SystemParameter properties

名前 データ型 必須/省略可能 更新可/不可 説明
Location String 必須 パラメーターの場所です。 オプションの値は BODY と HEAD です。 デフォルト値は HEAD です。
ParameterName String 必須 システムパラメーター名です。 オプションの値は以下のとおりです。CaClientIp、CaDomain、CaRequestHandleTime、CaAppId、CaRequestId、CaHttpSchema、および CaProxy
ServiceParameterName String 必須 対応するバックエンドパラメーター名
Description String 省略可能 パラメーター説明
DemoValue String 省略可能 コ―ディング例

ServiceParameter の構文

  1. ServiceParameter : { ParameterType : String, Location : String, ServiceParameterName : String,}

ServiceParameter のプロパティ

名前 データ型 必須/省略可能 更新可/不可 説明
ParameterType String 必須 バックエンドパラメーターのタイプです。 オプションの値は、STRING (文字型)、NUMBER (数値型)、およびBOOLEAN (ブール型) です。
Location String 必須 パラメーターの場所です。 オプションの値は BODY、HEAD、QUERY、および PATH です。
ServiceParameterName String 必須 バックエンドパラメーター名

OpenIdConnectConfig の構文

  1. OpenIdConnectConfig : { OpenIdApiType : String, PublicKey : String, PublicKeyId : String, IdTokenParamName : String,}

OpenIdConnectConfig のプロパティ

名前 データ型 必須/省略可能 更新可/不可 説明
OpenIdApiType String 必須

OpenID Connect モードです。 オプションの値は以下のとおりです。

  • IDTOKEN: トークンを発行するために使用される許可 API を示します。 この属性が IDTOKEN に設定されている場合、PublicKeyId および PublicKey パラメーターは必須です。
  • BUSINESS: トークンの検証に使用されるサービス API を示します。 この属性が BUSINESS に設定されている場合、IdTokenParamName パラメーターは必須です。
PublicKey String 省略可能 公開鍵
PublicKeyId String 省略可能 公開鍵の KeyID
IdTokenParamName String 省略可能 トークンに対応するパラメーターの名前

RequestConfig の構文

  1. RequestConfig : { RequestMode : String, RequestPath : String, PostBodyDescription : String, RequestProtocol : String, RequestHttpMethod : String, BodyFormat : String}

RequestConfig のプロパティ

名前 データ型 必須項目 更新可/不可 説明
RequestMode String 必須 リクエストモードです。 オプションの値は MAPPING (入力マッピング) と PASSTHROUGH (入力パススルー) です。 デフォルト値は MAPPING です。
RequestPath String 必須 API パスです。 完全なAPIアドレスが http://api.a.com:8080/object/add?key1=value1&key2=value2 の場合、パスは /object/add です。
RequestProtocol String 必須 API がサポートされているプロトコルタイプです。 複数の値を入力する場合はコンマ (,) で区切る必要があります。 たとえば、HTTP,HTTPS などとします。 オプションの値は HTTP と HTTPS です。
RequestHttpMethod String 必須 HTTP メソッドです。 オプションの値は、GET、POST、DELETE、PUT、HEADER、TRACE、PATCH、CONNECT、およびOPTIONSです。 デフォルト値は GET です。
PostBodyDescription String いいえ はい ボディの説明
BodyFormat String 省略可能 POST、PUT、または PATCH リクエストの送信時にデータをサーバーに伝送するメソッドです。 オプションの値は、FORM (キーと値のペアに適用可能なフォームによるデータ伝送) および STREAM (バイトストリームによるデータ伝送) です。 このパラメーターは、RequestMode が MAPPING に設定されている場合に有効です。

ServiceParametersMap の構文

  1. ServiceParametersMap : [ RequestParameterName : String, ServiceParameterName : String]

ServiceParametersMap のプロパティ

Namde データ型 必須/省略可能 更新可/不可 説明
RequestParameterName String 必須 対応するフロントエンド入力パラメーター名で、RequestParameter に含める必要があり、RequestParameter.ApiParameterName と一致します。
ServiceParameterName String 必須 バックエンドパラメーター名

RequestParameter の構文

  1. RequestParameters : { ParameterType : String, RegularExpression : String, Description : String, MinLength : Integer, DefaultValue : String, Required : String, MaxValue : Integer, MinValue : Integer, JsonScheme : String, DocOrder : Integer, ApiParameterName : String, Location : String, DocShow : String, MaxLength : Integer, EnumValue : String, DemoValue : String}

RequestParameter のプロパティ

名前 データ型 必須/省略可能 更新可/不可 説明
ParameterType String 必須 不可 パラメータータイプです。 オプションの値は以下のとおりです。String (文字型)、Int (整数型)、Long (long/integer 型)、Float (単精度浮動小数点型)、Double (倍精度浮動小数点型)、およびBoolean (ブール型)
Required String 必須 必須かどうかを示します。 オプションの値は REQUIRED (必須) および OPTIONAL (省略可能) です。
ApiParameterName String 必須 パラメーター名
Location String 必須 パラメーターの場所です。 オプションの値は BODY、HEAD、QUERY、および PATH です。
RegularExpression String 省略可能 ParameterType が String に設定されている場合のパラメーター検証 (正規表現)
Description String 省略可能 パラメーター説明
DefaultValue String 省略可能 デフォルト値
MaxLength integer 省略可能 ParameterType が String に設定されている場合の最大パラメーター長
MinLength integer 省略可能 ParameterType が String に設定されている場合の最小パラメーター長
MaxValue integer 省略可能 ParameterType が Int、Long、Float、または Double に設定されている場合の最大パラメーター値
MinValue integer 省略可能 ParameterType が Int、Long、Float、または Double に設定されている場合の最小パラメーター値
EnumValue String 省略可能 ParameterType は、Int、Long、Float、Double、または String に設定されます。 複数の値はコンマ (,) で区切る必要があります。 例: 1,2,3,4,9 または A,B,C,E,F
JsonScheme String 省略可能 ParameterType が String に設定されている場合の JSON 検証 (JSON スキーマ)
DocOrder integer 省略可能 ドキュメント内のシーケンス
DocShow String 省略可能 ドキュメントの可視性です。PUBLIC または PRIVATE に設定できます。
DemoValue String 省略可能 コーディング例

ConstParameter の構文

  1. ConstParameter : { Location : String, ConstValue : String, Description : String, ServiceParameterName : String}

ConstParameter のプロパティ

名前 データ型 必須/省略可能 更新可/不可 説明
Location String 必須 パラメーターの場所です。BODY または HEAD に設定できます。 デフォルト値は HEAD です。
ConstValue String 必須 パラメーター値
ServiceParameterName String 必須 バックエンドパラメーター名
Description String 省略可能 パラメーター説明

レスポンス値

Fn::GetAtt

ApiId None API の ID

コーディング例

  1. { ROSTemplateFormatVersion”: 2015-09-01”, Parameters”: { GroupId”: { Type”: String”, Default”: xxxxec10b1b4dc7a2e6ba8ca3xxxx”, Description”: Operated group } }, Resources”: { API”: { Type”: ALIYUN::ApiGateway::Api”, Properties”: { GroupId”: { Ref”: GroupId }, ApiName”: API_test”, Visibility”: PRIVATE”, Description”: keep for test”, AuthType”: APP”, RequestConfig”: { RequestHttpMethod”: GET”, RequestProtocol”: HTTP”, BodyFormat”: FORM”, PostBodyDescription”: k:v”, RequestPath”: “/demo_test_345 }, ServiceConfig”: { ServiceProtocol”: HTTP”, ContentTypeValue”: application/x-www-form-urlencoded; charset=UTF-8”, Mock”: FALSE”, MockResult”: Nothing”, ServiceTimeOut”: 20000, ServiceAddress”: https://mytest.cn“, Servicepath”: “/Data “, ServiceHttpMethod”: GET”, ContentTypeCatagory”: DEFAULT”, ServiceVpcEnable”: FALSE”, }, RequestParameters”: [ { Required”: OPTION”, ParameterType”: String”, ApiParameterName”: x-demo”, DocShow”: PUBLIC”, DefaultValue”: x-demo-val”, Location”: HEAD”, DocOrder”: 0 }, { Required”: OPTION”, ParameterType”: String”, ApiParameterName”: y-demo”, DocShow”: PUBLIC”, DefaultValue”: y-demo-val”, Location”: QUERY”, DocOrder”: 1 } ], ServiceParameters”: [ { ServiceParameterName”: x-demo-ser”, ParameterType”: STRING”, Location”: HEAD }, { ServiceParameterName”: y-demo-ser”, ParameterType”: STRING”, Location”: QUERY } ], ServiceParametersMap”: [ { ServiceParameterName”: x-demo-ser”, RequestParameterName”: x-demo }, { ServiceParameterName”: y-demo-ser”, RequestParameterName”: y-demo } ], ResultType”: JSON”, ResultSample”: demo sample result”, FailResultSample”: demo faile sample result”, ErrorCodeSamples”: [ { Description”: “??”, Message”: Missing”, Code”: 400 }, { Description”: “???”, Message”: Missing”, Code”: 401 } ], SystemParameters”: [ { Description”: ClientIP”, ServiceParameterName”: demo-sys-ser”, DemoValue”: 192.168.1.1”, Location”: HEAD”, ParameterName”: CaClientIp } ], ConstParameters”: [ { Description”: demo_const”, ServiceParameterName”: demo-const-ser”, Location”: HEAD”, ConstValue”: demo_const_val } ] } } }}
  1. </article>
  2. </main>