外部の API を実行する

目次

外部の API を実行する

kintone から外部サービスの API を実行します。
この API を利用すると、クロスドメイン制約を回避して、外部 API にリクエストを送信できます。 外部にファイルをアップロードする際には、 外部にファイルをアップロードする を参照してください。

関数

PC/モバイル

kintone.proxy(url, method, headers, data, successCallback, failureCallback)

引数

引数 必須 説明
url 文字列 必須 実行する API の URL
method 文字列 必須 API の実行に使用する HTTP メソッド
次のいずれかの値を指定します。
  • GET
  • POST
  • PUT
  • DELETE
headers オブジェクト 必須 リクエストヘッダー
例:
{
"Content-Type": "application/json"
}
何も指定しない場合は {} を指定してください。
data オブジェクトまたは文字列 必須 リクエストボディ
何も指定しない場合は {} を指定してください。
HTTP メソッドに POST や PUT を指定したときだけ送信されます。
HTTP メソッドが GET や DELETE のリクエストで、リクエストボディを指定したい場合には、url のクエリ文字列として指定してください。
successCallback 関数 省略可 リクエストが完了したときに実行されるコールバック関数
コールバック関数の引数には、次の情報が渡されます。
  • 第 1 引数:レスポンスボディ(文字列)
  • 第 2 引数:ステータスコード(数値)
  • 第 3 引数:レスポンスヘッダー(オブジェクト)
省略すると、 kintone.Promise オブジェクト が返り、レスポンスボディ、ステータスコード、レスポンスヘッダーが格納された配列で解決されます。
failureCallback 関数 省略可 リクエストが失敗した時に実行されるコールバック関数
省略すると、 kintone.Promise オブジェクト が返り、プロキシ API のレスポンスボディ(文字列)で棄却されます。

戻り値

successCallback を指定した場合、戻り値はありません。
引数の successCallback を省略した場合、 kintone.Promise オブジェクト が返ります。

サンプルコード

コールバックを使った記述方法
1
2
3
4
5
6
7
kintone.proxy('https://api.example.com', 'GET', {}, {}, (body, status, headers) => {
  // success
  console.log(status, JSON.parse(body), headers);
}, (error) => {
  // error
  console.log(error); // proxy APIのレスポンスボディ(文字列)を表示
});
kintone.Promise オブジェクトを使った記述方法
1
2
3
4
5
6
7
8
try {
  const resp = await kintone.proxy('https://api.example.com', 'GET', {}, {});
  // success
  console.log(resp);
} catch (error) {
  // error
  console.log(error);
}

注意事項

  • 利用できる「Content-Type」に制限はありません。
  • url に存在しないサーバーを指定すると、ステータスコードが 503(DNS Cache Missing)のエラーが返ります。
  • テスト環境など IP アドレス制限 (External link) を設定している場合、この API を使って別のアプリに対して kintone REST API を実行するには、cybozu.com のサービスで利用している IP アドレスを許可してください。
    cybozu.com のサービスで利用している IP アドレスは、 cybozu.comが使用するドメインとIPアドレス (External link) を参照してください。
    ただし、どの kintone 環境からも自由にアクセスできるようになるため、セキュリティの観点から推奨していません。
    同じ kintone 環境に対して kintone REST API を実行する場合には、 kintone REST API リクエストを送信する API を使用してください。

制限事項

  • この API を使って外部の API を実行しても、実行した API 先で発行されるべき Cookie は、自動で発行されません。
  • 実行する外部 API のレスポンスヘッダーの上限は、100 行で、1 行あたりの最大長は 8,192bytes です。
  • 実行する外部 API のレスポンスボディは、文字列のみ対応しています。画像などのバイナリデータは取得できません。
  • 実行する外部 API のレスポンスボディの上限は 10MB です。上限を超えるとエラーになります。
  • 自己証明書を使ったサーバーとの通信はできません。
  • HTTP メソッドに POST または PUT を指定した場合、「Content-Length」ヘッダーと「Transfer-Encoding」ヘッダーは、自動で付加されます。
    headers に明示的に設定すると、エラーが発生します。