フェッチ :スコープ指定、グローバル
フェッチ API は、要求オブジェクトと応答オブジェクトを使用してリソースをフェッチするためのメソッドを提供します。
Fetch API は、バックグラウンドスクリプトや、HTTP 呼び出しが可能な場所 (REST エンドポイントなど) で使用できます。フェッチ API を使用すると、ヘッダーや本文オプションなどを設定することで、単純なフェッチ要求と複雑なフェッチ要求の両方を行うことができます。
この API は、外部 Web サイトからリソースを取得するためのさまざまなアクションを提供する一連の フェッチ API の一部です。完全な Fetch API コレクションには次のものが含まれます。
- fetch:fetch(文字列、リソース、オブジェクトオプション):ネットワークからリソースを取得するプロセスを開始します。
- ヘッダーのフェッチ - スコープ対象、グローバル:要求ヘッダーと応答ヘッダーを取得して変更します。
- 要求のフェッチ: スコープ、グローバル:新しい要求オブジェクトを作成します。
- RequestInit のフェッチ :スコープ対象、グローバル:フェッチ要求を構成するオプションを設定します。
- 応答をフェッチ: スコープ指定、グローバル:新しい応答オブジェクトを作成します。
フェッチアクションをサポートするために、システムプロパティ glide.hosts.allowlist を使用すると、フェッチメソッドがアクセスできるホストを制御できます。これは、 RestMessageV2 などの HTTP API や上記の API に適用されます。glide.hosts.allowlist の詳細については、「Available system properties」を参照してください。
fetch:fetch(文字列、リソース、オブジェクトオプション)
ネットワークからリソースをフェッチするプロセスを開始し、応答が利用可能になると履行される約束を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| resource | 文字列またはオブジェクト | 必須です。フェッチするリソース。 指定できる値:
|
| オプション | オブジェクト | オプション。要求に適用するカスタム設定を含む RequestInit のフェッチ :スコープ対象、グローバル オブジェクト。 デフォルト:要求はカスタマイズ設定なしで渡されます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 応答オブジェクトに解決される Promise。 fetch() promise は、要求 URL の形式が正しくない、ネットワークエラーなどが原因で要求が失敗した場合にのみ拒否します。 注: サーバーが 404 や 504 などのエラーを示す HTTP ステータスコードで応答した場合、 fetch() promise は却下されたとは見なされません。このインスタンスでは、 then() ハンドラーを使用して ok と status 応答をフェッチ: スコープ指定、グローバルproperties を確認します。 |
次の例は、 要求をフェッチ:request() を使用して新しい Request オブジェクトを形成し、 fetch() してそのデータを取得する方法を示しています。コードの各部分がどのように使用されるかを簡単に説明します。
- request():URL、メソッド、およびヘッダーを使用して API 要求を構成します。
- fetch(): フェッチ要求を行います。
- response.json():JSON 応答本文を解析して JavaScript オブジェクトにします。(詳細については、「 応答をフェッチ:json() 」を参照してください。
- console.log(): コンソール API を使用してインシデント (data.result) を出力します ( コンソール:log(オブジェクト val1...val2、文字列 msg、文字列 subst1...subst2) を参照)。
async function fetchIncidents() {
const url = 'https://your-instance.service-now.com/api/now/table/incident';
const username = 'your_username';
const password = 'your_password';
// Create a Request object
const request = new Request(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: 'Basic ' + btoa(`${username}:${password}`)
}
});
// Fetch data and use response.json() to process it
const response = await fetch(request);
const data = await response.json(); // Parse the response to JSON
console.log(data.result); // Log the incidents data to system logs
}
fetchIncidents();
出力:
[
{ "number": "INC0001", "short_description": "System outage" },
{ "number": "INC0002", "short_description": "Password reset request" }
]