API Gateway β APIドキュメント (1.0.0)

Download OpenAPI specification:Download


サービス

Service登録API

アップストリームのエンドポイント情報である Service を登録します。

Request Body schema: application/json
name
required
string (Name) [ 1 .. 255 ] characters

Unicode文字、数字、ハイフン、アンダースコア、ピリオドのみ許可

tags
Array of strings (Tags) [ items [ 1 .. 255 ] items ]

エンティティを検索するためのタグ

protocol
required
string
Enum: "http" "https"

Serviceにアクセスするためのプロトコル

host
required
string <= 253 characters

Serviceにアクセスするためのホスト名
ホスト名はドメイン名またはIPアドレスを指定する
プライベートIPアドレスは指定できない

path
string <= 255 characters
Default: "/"

Serviceにアクセスするためのパス
パスは/から始まり、半角英数字、アンダースコア、ハイフン、スラッシュのみを許可

port
integer [ 0 .. 65535 ]

Serviceにアクセスするためのポート番号
省略した場合はプロトコルに応じたデフォルトポートが設定される

retries
integer [ 0 .. 32767 ]
Default: 5

リトライ回数

connectTimeout
integer [ 1 .. 2147483646 ]
Default: 60000

接続タイムアウト秒数

writeTimeout
integer [ 1 .. 2147483646 ]
Default: 60000

書き込みタイムアウト秒数

readTimeout
integer [ 1 .. 2147483646 ]
Default: 60000

読み込みタイムアウト秒数

authentication
string
Default: "none"
Enum: "none" "basic" "hmac" "jwt"

認証方式
未指定の場合は認証なし

routeHost
string <= 253 characters

自動発行したRouteのホスト

object (CorsConfig)

CORS設定

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "tags": [
    ],
  • "protocol": "https",
  • "host": "xxx.example.jp",
  • "path": "/base",
  • "port": 80,
  • "retries": 5,
  • "connectTimeout": 60000,
  • "writeTimeout": 60000,
  • "readTimeout": 60000,
  • "authentication": "none",
  • "routeHost": "site-xxxxxxxxx.stg.apigw.sakura.ne.jp",
  • "corsConfig": {
    }
}

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Service一覧照会API

登録した Service の一覧を取得します。

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Service詳細照会API

登録した Service の詳細情報を取得します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Service更新API

登録した Service の詳細情報を更新します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

Request Body schema: application/json
name
required
string (Name) [ 1 .. 255 ] characters

Unicode文字、数字、ハイフン、アンダースコア、ピリオドのみ許可

tags
Array of strings (Tags) [ items [ 1 .. 255 ] items ]

エンティティを検索するためのタグ

protocol
required
string
Enum: "http" "https"

Serviceにアクセスするためのプロトコル

host
required
string <= 253 characters

Serviceにアクセスするためのホスト名
ホスト名はドメイン名またはIPアドレスを指定する
プライベートIPアドレスは指定できない

path
string <= 255 characters
Default: "/"

Serviceにアクセスするためのパス
パスは/から始まり、半角英数字、アンダースコア、ハイフン、スラッシュのみを許可

port
integer [ 0 .. 65535 ]

Serviceにアクセスするためのポート番号
省略した場合はプロトコルに応じたデフォルトポートが設定される

retries
integer [ 0 .. 32767 ]
Default: 5

リトライ回数

connectTimeout
integer [ 1 .. 2147483646 ]
Default: 60000

接続タイムアウト秒数

writeTimeout
integer [ 1 .. 2147483646 ]
Default: 60000

書き込みタイムアウト秒数

readTimeout
integer [ 1 .. 2147483646 ]
Default: 60000

読み込みタイムアウト秒数

authentication
string
Default: "none"
Enum: "none" "basic" "hmac" "jwt"

認証方式
未指定の場合は認証なし

routeHost
string <= 253 characters

自動発行したRouteのホスト

object (CorsConfig)

CORS設定

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "tags": [
    ],
  • "protocol": "https",
  • "host": "xxx.example.jp",
  • "path": "/base",
  • "port": 80,
  • "retries": 5,
  • "connectTimeout": 60000,
  • "writeTimeout": 60000,
  • "readTimeout": 60000,
  • "authentication": "none",
  • "routeHost": "site-xxxxxxxxx.stg.apigw.sakura.ne.jp",
  • "corsConfig": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

Service削除API

登録した Service を削除します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

Responses

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

Route登録API

登録した Service に対して、公開するエンドポイントとして Route を登録します。
各 Route の認証設定は全て Service の設定に準じます。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

Request Body schema: application/json

Create a route

name
required
string (Name) [ 1 .. 255 ] characters

Unicode文字、数字、ハイフン、アンダースコア、ピリオドのみ許可

tags
Array of strings (Tags) [ items [ 1 .. 255 ] items ]

エンティティを検索するためのタグ

protocols
required
string
Enum: "http,https" "http" "https"

Routeにアクセスするためのプロトコル

path
string <= 255 characters

Routeにアクセスするためのパス
パスはスラッシュまたはチルダスラッシュで始まるパス文字列のみを許可

methods
required
Array of strings (HTTPMethod) non-empty
Default: ["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD","CONNECT","TRACE"]
Items Enum: "GET" "POST" "PUT" "DELETE" "PATCH" "OPTIONS" "HEAD" "CONNECT" "TRACE"

RouteにアクセスするためのHTTPメソッド
未指定の場合は全メソッドを許可

httpsRedirectStatusCode
integer
Default: 426
Enum: 301 302 303 307 308 426

HTTPSリダイレクト時のステータスコード

regexPriority
integer [ 0 .. 255 ]
Default: 0

パスを正規表現で指定した場合の優先度
0が最優先

stripPath
boolean
Default: true

リクエストのパスからルートのパスを削除するかどうか

preserveHost
boolean
Default: false

リクエストのHostヘッダーを保持するかどうか

requestBuffering
boolean
Default: true

リクエストのバッファリングを有効にするかどうか

responseBuffering
boolean
Default: true

レスポンスのバッファリングを有効にするかどうか

object (IpRestrictionConfig)

IP制限

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "tags": [
    ],
  • "protocols": "http,https",
  • "path": "/",
  • "methods": [
    ],
  • "httpsRedirectStatusCode": 426,
  • "regexPriority": 0,
  • "stripPath": false,
  • "preserveHost": true,
  • "requestBuffering": false,
  • "responseBuffering": false,
  • "ipRestrictionConfig": {
    }
}

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Service Route一覧照会API

Service に登録した Route の一覧を取得します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Route詳細照会API

Service に登録した Route の詳細情報を取得します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

routeId
required
string <uuid>
Example: 02c6abbd-0c12-42e5-8d90-7eea021028d9

RouteID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Route更新API

Service に登録した Route の詳細情報を更新します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

routeId
required
string <uuid>
Example: 02c6abbd-0c12-42e5-8d90-7eea021028d9

RouteID

Request Body schema: application/json

Update a route

name
required
string (Name) [ 1 .. 255 ] characters

Unicode文字、数字、ハイフン、アンダースコア、ピリオドのみ許可

tags
Array of strings (Tags) [ items [ 1 .. 255 ] items ]

エンティティを検索するためのタグ

protocols
required
string
Enum: "http,https" "http" "https"

Routeにアクセスするためのプロトコル

path
string <= 255 characters

Routeにアクセスするためのパス
パスはスラッシュまたはチルダスラッシュで始まるパス文字列のみを許可

methods
required
Array of strings (HTTPMethod) non-empty
Default: ["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD","CONNECT","TRACE"]
Items Enum: "GET" "POST" "PUT" "DELETE" "PATCH" "OPTIONS" "HEAD" "CONNECT" "TRACE"

RouteにアクセスするためのHTTPメソッド
未指定の場合は全メソッドを許可

httpsRedirectStatusCode
integer
Default: 426
Enum: 301 302 303 307 308 426

HTTPSリダイレクト時のステータスコード

regexPriority
integer [ 0 .. 255 ]
Default: 0

パスを正規表現で指定した場合の優先度
0が最優先

stripPath
boolean
Default: true

リクエストのパスからルートのパスを削除するかどうか

preserveHost
boolean
Default: false

リクエストのHostヘッダーを保持するかどうか

requestBuffering
boolean
Default: true

リクエストのバッファリングを有効にするかどうか

responseBuffering
boolean
Default: true

レスポンスのバッファリングを有効にするかどうか

object (IpRestrictionConfig)

IP制限

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "tags": [
    ],
  • "protocols": "http,https",
  • "path": "/",
  • "methods": [
    ],
  • "httpsRedirectStatusCode": 426,
  • "regexPriority": 0,
  • "stripPath": false,
  • "preserveHost": true,
  • "requestBuffering": false,
  • "responseBuffering": false,
  • "ipRestrictionConfig": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

Route削除API

Service に登録した Route を削除します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

routeId
required
string <uuid>
Example: 02c6abbd-0c12-42e5-8d90-7eea021028d9

RouteID

Responses

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

Route認可情報更新API

登録した Route に対してアクセス可能な Group を登録します。
登録しない場合は全てのUserがアクセス可能になります。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

routeId
required
string <uuid>
Example: 02c6abbd-0c12-42e5-8d90-7eea021028d9

RouteID

Request Body schema: application/json
One of
isACLEnabled
required
any
Value: false

認可設定を無効にする

Responses

Request samples

Content type
application/json
{
  • "isACLEnabled": true,
  • "groups": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

Route認可情報取得API

Route に登録した認可情報を取得します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

routeId
required
string <uuid>
Example: 02c6abbd-0c12-42e5-8d90-7eea021028d9

RouteID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Route Request変換情報更新API

Route から Service へ転送する際にリクエスト内容を変換する設定を登録します。

  • httpMethod: 設定したHTTPメソッドへ変換します。
  • allow: 設定した Key 以外をリクエストから取り除きます。
  • remove: 設定した Key をリクエストから取り除きます。
  • rename: 設定した From-To に従い、リクエストの Key を変更します。
  • replace: 設定した Key と同名の Key がリクエストに存在する場合、Value の値を置換します。
  • add: 設定した値をリクエストに追加します。同名の Key がリクエストに存在しない場合に機能します。
  • append: 設定した値をリクエストに追加します。同名の Key がリクエストに存在する場合は Value に追記します。
path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

routeId
required
string <uuid>
Example: 02c6abbd-0c12-42e5-8d90-7eea021028d9

RouteID

Request Body schema: application/json
httpMethod
string (HTTPMethod)
Enum: "GET" "POST" "PUT" "DELETE" "PATCH" "OPTIONS" "HEAD" "CONNECT" "TRACE"

変換するHTTPメソッド

object (RequestAllowDetail)
object (RequestRemoveDetail)
object (RequestRenameDetail)
object (ResponseModification)
object (ResponseModification)
object (ResponseModification)

Responses

Request samples

Content type
application/json
{
  • "httpMethod": "GET",
  • "allow": {
    },
  • "remove": {
    },
  • "rename": {
    },
  • "replace": {
    },
  • "add": {
    },
  • "append": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

Route Request変換情報取得API

Route に登録したリクエスト変換情報を取得します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

routeId
required
string <uuid>
Example: 02c6abbd-0c12-42e5-8d90-7eea021028d9

RouteID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Route Response変換情報更新API

Route から Service へ転送する際にレスポンス内容を変換する設定を登録します。

  • allow: 設定した Key 以外をレスポンスから取り除きます。
  • remove: 設定した Key をレスポンスから取り除きます。
  • rename: 設定した From-To に従い、レスポンスの Key を変更します。
  • replace: 設定した Key と同名の Key がレスポンスに存在する場合、Value の値を置換します。
  • add: 設定した値をレスポンスに追加します。同名の Key がレスポンスに存在しない場合に機能します。
  • append: 設定した値をレスポンスに追加します。同名の Key がレスポンスに存在する場合は Value に追記します。
  • ifStatusCode: 設定した場合、アップストリームからのレスポンスコードが設定した値と一致する場合に、各種変換が機能します。
path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

routeId
required
string <uuid>
Example: 02c6abbd-0c12-42e5-8d90-7eea021028d9

RouteID

Request Body schema: application/json
object (ResponseAllowDetail)

許可するJSONのキー
半角英数字、ハイフン、アンダースコア、ピリオド繋ぎを許可

object (ResponseRemoveDetail)
object (ResponseRenameDetail)
object (ResponseReplaceDetail)
object (ResponseModificationDetail)
object (ResponseModificationDetail)

Responses

Request samples

Content type
application/json
{
  • "allow": {
    },
  • "remove": {
    },
  • "rename": {
    },
  • "replace": {
    },
  • "add": {
    },
  • "append": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

Route Response変換情報取得API

Route に登録したレスポンス変換情報を取得します。

path Parameters
serviceId
required
string <uuid>
Example: 7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba

ServiceID

routeId
required
string <uuid>
Example: 02c6abbd-0c12-42e5-8d90-7eea021028d9

RouteID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

ユーザー

User登録API

認証情報を設定する User を登録します。
User のIP制限設定は、Route にIP制限が設定されていない場合に機能します。

Request Body schema: application/json

Create a User

name
required
string (Name) [ 1 .. 255 ] characters

Unicode文字、数字、ハイフン、アンダースコア、ピリオドのみ許可

customID
string

カスタムID

tags
Array of strings (Tags) [ items [ 1 .. 255 ] items ]

エンティティを検索するためのタグ

object (IpRestrictionConfig)

IP制限

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "customID": "example_custom_id_123456",
  • "tags": [
    ],
  • "ipRestrictionConfig": {
    }
}

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

User一覧照会API

登録した User の一覧を取得します。

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

User詳細照会API

登録した User の詳細情報を取得します。

path Parameters
userId
required
string <uuid>
Example: 67f57741-ac25-433a-8d7a-8778711b4a2c

UserID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

User更新API

登録した User の詳細情報を更新します。

path Parameters
userId
required
string <uuid>
Example: 67f57741-ac25-433a-8d7a-8778711b4a2c

UserID

Request Body schema: application/json

Update a user

name
required
string (Name) [ 1 .. 255 ] characters

Unicode文字、数字、ハイフン、アンダースコア、ピリオドのみ許可

customID
string

カスタムID

tags
Array of strings (Tags) [ items [ 1 .. 255 ] items ]

エンティティを検索するためのタグ

object (IpRestrictionConfig)

IP制限

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "customID": "example_custom_id_123456",
  • "tags": [
    ],
  • "ipRestrictionConfig": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

User削除API

登録した User を削除します。

path Parameters
userId
required
string <uuid>
Example: 67f57741-ac25-433a-8d7a-8778711b4a2c

UserID

Responses

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

User所属Group照会API

登録した User が所属している Group の一覧を取得します。

path Parameters
userId
required
string <uuid>
Example: 67f57741-ac25-433a-8d7a-8778711b4a2c

UserID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

User所属Group更新API

登録した User を Group に所属させます。

path Parameters
userId
required
string <uuid>
Example: 67f57741-ac25-433a-8d7a-8778711b4a2c

UserID

Request Body schema: application/json

Update a user group

Array
One of
isAssigned
required
boolean

UserがGroupに所属しているかどうか

id
required
string <uuid>

GroupのID

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

User認証情報取得API

User に登録された認証情報を取得します。
なお、パスワード、シークレットなどの機密情報は取得できません。

path Parameters
userId
required
string <uuid>
Example: 67f57741-ac25-433a-8d7a-8778711b4a2c

UserID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

User認証情報更新API

User に認証情報を登録します。

path Parameters
userId
required
string <uuid>
Example: 67f57741-ac25-433a-8d7a-8778711b4a2c

UserID

Request Body schema: application/json
object (BasicAuth)

各Entity共通のモデル

object (Jwt)

各Entity共通のモデル

object (HmacAuth)

各Entity共通のモデル

Responses

Request samples

Content type
application/json
{
  • "basicAuth": {
    },
  • "jwt": {
    },
  • "hmacAuth": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

グループ

Group一覧照会API

登録した Group の一覧を取得します。

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Group登録API

新しい Group を登録します。
Group は User を分類し、アクセス制御を管理するために使用されます。

Request Body schema: application/json

Create a Group

name
required
string (Name) [ 1 .. 255 ] characters

Unicode文字、数字、ハイフン、アンダースコア、ピリオドのみ許可

tags
Array of strings (Tags) [ items [ 1 .. 255 ] items ]

エンティティを検索するためのタグ

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Group詳細照会API

登録した Group の詳細情報を取得します。

path Parameters
groupId
required
string <uuid>
Example: ac8a3fb3-0354-4917-9a3d-c5dc5ab50869

GroupID

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

Group更新API

登録した Group の詳細情報を更新します。

path Parameters
groupId
required
string <uuid>
Example: ac8a3fb3-0354-4917-9a3d-c5dc5ab50869

GroupID

Request Body schema: application/json
name
required
string (Name) [ 1 .. 255 ] characters

Unicode文字、数字、ハイフン、アンダースコア、ピリオドのみ許可

tags
Array of strings (Tags) [ items [ 1 .. 255 ] items ]

エンティティを検索するためのタグ

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

Group削除API

登録した Group を削除します。

path Parameters
groupId
required
string <uuid>
Example: ac8a3fb3-0354-4917-9a3d-c5dc5ab50869

GroupID

Responses

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

Group所属User照会API

登録した Group に所属している User の一覧を取得します。

path Parameters
groupId
required
string <uuid>
Example: ac8a3fb3-0354-4917-9a3d-c5dc5ab50869

GroupID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

プラン

プラン一覧照会API

現在契約可能な API Gateway の料金プランの一覧を取得します。

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

サブスクリプション

契約照会API

お客様の API Gateway 契約状態を取得します。
契約情報が存在しない場合は、未契約のステータスを返却します。
契約情報が存在する場合は、契約中のステータスと加入中のプラン情報を返却します。

Responses

Response samples

Content type
application/json
{
  • "apigw": {
    }
}

契約API

選択したプランで API Gateway の利用契約を行います。

Request Body schema: application/json

契約情報

planId
string <uuid>

プランID

Responses

Request samples

Content type
application/json
{
  • "planId": "7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba"
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

契約更新API

選択したプランで API Gateway の契約内容を更新します。

Request Body schema: application/json

契約情報

planId
string <uuid>

プランID

Responses

Request samples

Content type
application/json
{
  • "planId": "7c8d78bc-e4a3-4600-b70a-f5fe802dc1ba"
}

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}

契約解約API

API Gateway の契約を解約します。

Responses

Response samples

Content type
application/json
{
  • "message": "Bad Request"
}