執行外部 API

information

本頁面使用機器翻譯而成。
機器翻譯免責聲明 (External link)

目錄

執行外部 API

從 kintone 執行外部服務的 API。
此 API 允許您繞過跨域限制並向外部 API 發送請求。
向外部上傳檔時,請參閱以下頁面。
從外部上傳檔案

函數

電腦/行動裝置

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 函數 可省略 請求完成時執行的回調函數
以下資訊將傳遞給回調函數的參數:
  • 第一個參數:回應內文(字串)
  • 第二個參數:狀態代碼(數值)
  • 第三個參數:回應標頭(物件)
如果省略,則返回kintone.Promise物件,並將其解析為包含回應內文、狀態代碼和回應標頭的陣列。
kintone.Promise物件
failureCallback 函數 可省略 請求失敗時執行的回調函數
如果省略,返回kintone.Promise物件,並會在代理 API 的回應內文(字串)中廢棄。
kintone.Promise物件

返回值

如果指定 successCallback ,則沒有返回值。
如果省略參數successCallback,則返回kintone.Promise物件。
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); // 顯示代理 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);
}

注意事項

  • 如果指定的伺服器 url 不存在,則返回狀態代碼為「503」(DNS 快取缺失)的錯誤。
  • 如果設置了 IP 位址限制,要使用該 JavaScript API 為同一域的其他應用執行 kintone REST API,則必須允許 kintone 的 IP 位址。
    有關詳細的IP地址,請參閱以下頁面。
    cybozu.com 使用的域和IP位址 (External link)
    但是,從安全角度來看,不建議這樣做,因為它允許通過執行外部 API 的 API 從所有 kintone 環境自由訪問。
    對於對同一域的請求,請使用以下 API。
    發送kintone REST API請求API
  • 即使您使用此 API 執行外部 API,也不會自動發出應由執行的 API 目標發出的 cookie。
  • 如果為 HTTP 方法指定 POST 或 PUT,則會自動追加「Content-Length」和「Transfer-Encoding」標頭。
    如果在請求裡指定,則會出現錯誤。
  • 可以使用的「Content-Type」沒有限制。

限制事項

  • 以下是對執行的外部 API 回應的限制:
    • 響應標頭的最大為 100 行,每行的最大長度為 8,180 位元組。
    • 回應內文的上限為 10MB。如果超過限制,則會發生錯誤。
    • 回應內文僅支援字串。無法獲取二進位數據,例如圖像。
  • 不能使用自證書與伺服器通信。