ALIYUN::ApiGateway::Api を使用して API を作成できます。
構文
{ “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 セキュリティ認証タイプです。 オプションの値は以下のとおりです。 |
ServiceParametersMap | List | 省略可能 | 可 | コンシューマーからゲートウェイに送信されるリクエストのパラメーターと、ゲートウェイからバックエンドサービスに送信されるリクエストのパラメーターのマッピング |
FailResultSample | String | 省略可能 | 可 | バックエンドサービスから返される応答の失敗のサンプル |
RequestParameters | List | 省略可能 | 可 | コンシューマーからゲートウェイに送信される API リクエストのパラメーターの説明 |
ConstParameters | List | 省略可能 | 可 | 指定された API の定数パラメーター |
ErrorCodeSample の構文
“ErrorCodeSample” : { “Message” : String, “Code” : String, “Description” : String}
ErrorCodeSample のプロパティ
名前 | データ型 | 必須/省略可能 | 更新可/不可 | 説明 |
Message | String | 必須 | 可 | エラーメッセージ |
Code | String | 必須 | 可 | エラーコード |
Description | String | 省略可能 | 可 | エラーの説明 |
ServiceConfig の構文
“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 の構文
“VpcConfig” : { “InstanceId” : String, “VpcId” : String, “Port” : Integer,}
VpcConfig のプロパティ
名前 | データ型 | 必須/省略可能 | 更新可/不可 | 説明 |
InstanceId | String | 必須 | 可 | VPC 内のインスタンス (ECS/Server Load Balancer) の ID |
VpcId | String | 必須 | 可 | VPC ID |
Port | integer | 必須 | 可 | インスタンスに対応するポートの数 |
SystemParameters の構文
“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 の構文
“ServiceParameter” : { “ParameterType” : String, “Location” : String, “ServiceParameterName” : String,}
ServiceParameter のプロパティ
名前 | データ型 | 必須/省略可能 | 更新可/不可 | 説明 |
ParameterType | String | 必須 | 可 | バックエンドパラメーターのタイプです。 オプションの値は、STRING (文字型)、NUMBER (数値型)、およびBOOLEAN (ブール型) です。 |
Location | String | 必須 | 可 | パラメーターの場所です。 オプションの値は BODY、HEAD、QUERY、および PATH です。 |
ServiceParameterName | String | 必須 | 可 | バックエンドパラメーター名 |
OpenIdConnectConfig の構文
“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 の構文
“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 の構文
“ServiceParametersMap” : [ “RequestParameterName” : String, “ServiceParameterName” : String]
ServiceParametersMap のプロパティ
Namde | データ型 | 必須/省略可能 | 更新可/不可 | 説明 |
RequestParameterName | String | 必須 | 可 | 対応するフロントエンド入力パラメーター名で、RequestParameter に含める必要があり、RequestParameter.ApiParameterName と一致します。 |
ServiceParameterName | String | 必須 | 可 | バックエンドパラメーター名 |
RequestParameter の構文
“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 の構文
“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
コーディング例
{ “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” } ] } } }}