API利用方法
P2PUB-APIの利用方法
P2PUB-APIはREST APIとしてデザインされており、URLとHTTPリクエストヘッダ、HTTPリクエストボディでパラメータを指定して利用します。お客様が作成されたクライアントプログラムから、以下の要領で、アクセスURLに対してリクエストしてください。
使用するプロトコル
項目 | 規格 |
---|---|
プロトコル | HTTP/1.1 (https) |
HTTPメソッド | GET、POST、PUT、DELETEのいずれか |
リクエストパラメータ形式 | application/json |
レスポンスフォーマット | JSON |
文字コード | UTF-8 |
タイムアウト | 180秒 |
エンドポイントURL | https://p2pub.api.iij.jp/ |
P2PUB-APIを呼び出す際には、HTTP/1.1 (https) を利用します。お客様が作成されたクライアントプログラムから、エンドポイントURLに対してリクエストしてください。
httpでのリクエストは受け付けません。必ずhttpsを使用してください。APIを呼び出すプログラムは、リクエスト先が正当なものであることを確認するため、SSL証明書を検証することを推奨いたします。
P2PUB-APIはREST APIとしてデザインされており、リクエストはGET、POST、PUT、DELETEメソッドを用います。APIによって使用するメソッドが決まります
リクエストパラメータとレスポンスは、いずれもjson形式で表現されます
短期間に極めて多数のAPIリクエストが行われた場合、サービスの健全性を保つためにAPIのリクエストを制限する場合があります。
APIリクエスト時の共通パラメータ
API呼び出し時に必要なパラメータは、すべてのAPIに共通のパラメータと、API毎に定義される個別のパラメータがあります。
以下に共通パラメータを示します。
パラメータ | 必須 | 意味 |
---|---|---|
AccessKeyId | ○ | 使用するAccessKey 参照: AccessKey |
APIVersion | ○ | APIバージョン 参照: API一覧 |
Expire | ○ | Signatureの有効期間 書式: YYYY-MM-DDThh:mm:ssZ |
SignatureMethod | ○ | Singature生成に用いるオブジェクトアルゴリズム 値: HmacSHA256, HmacSHA1 |
SignatureVersion | ○ | Signature生成ロジックのバージョン 値: 2 |
Signature | ○ | リクエストの署名 参照: 認証・リクエストの署名 |
- 個別のパラメータはAPI一覧を参照してください
認証・リクエストの署名
P2PUB-APIを呼び出す際には、認証のためにAccessKeyとSignatureを利用します。
AccessKeyはサービスオンラインの画面から取得することができます。AccessKeyの取得方法はAccessKeyについてを参照してください。
Signatureはリクエストパラメータから一定の手順で生成した文字列です。Singatureを生成する際に、AccessKeyと同時に発行されるSecretKeyを利用します。
PUT /r/(APIVersion)/(個別パラメータ)/(API名).json Host: p2pub.api.iij.jp Content-Type: application/json Date: Mon, 20 Jan 2014 12:34:56 GMT x-iijapi-Expire: (Expire) x-iijapi-SignatureMethod: (SignatureMethod) x-iijapi-SignatureVersion: (SignatureVersion) Authorization: IIJAPI (AccessKeyId):(Signature) (HTTPリクエストボディ: JSON形式のAPI個別のパラメータ)
具体的な生成例は、サンプルコードを参考にしてください。
レスポンスパラメータ
APIから返されるレスポンスには、すべてのAPIに共通のフィールドと、API毎に定義される個別のフィールドがあります。
以下に共通のフィールドを示します。
非同期に処理されるAPI
API一覧で「非同期」と書かれているAPIは、APIのリクエストと実際の処理が非同期に実行されます。
このようなAPIでは、APIリクエストではパラメータに問題が無いことが確認されると、即座にレスポンスが返却されます。APIリクエスト直後には期待する処理が完了していない可能性があるため、注意して下さい。
処理が完了したかどうかは、それぞれの操作対象に対する情報取得系のAPIを呼び出して確認することができます。