フェッチ :スコープ対象、グローバル
Fetch API は、要求オブジェクトと応答オブジェクトを使用してリソースをフェッチするためのメソッドを提供します。
Fetch API は、バックグラウンドスクリプトや、HTTP 呼び出しを行うことができる場所 (REST エンドポイントなど) で使用できます。Fetch API を使用すると、ヘッダー、本文オプションなどを設定することで、単純なフェッチ要求とより複雑なフェッチ要求の両方を行うことができます。
この API は、外部 Web サイトからリソースをフェッチするためのさまざまなアクションを提供する 一連の Fetch API の一部です。完全な Fetch API コレクションには、次のものが含まれます。
- フェッチ:fetch(文字列、リソース、オブジェクトオプション):ネットワークからリソースをフェッチするプロセスを開始します。
- ヘッダーのフェッチ :スコープ対象、グローバル:要求と応答のヘッダーを取得して変更します。
- 要求のフェッチ :スコープ対象、グローバル:新しい要求オブジェクトを作成します。
- RequestInit のフェッチ:スコープ対象、グローバル:フェッチ要求を構成するオプションを設定します。
- 応答のフェッチ :スコープ対象、グローバル:新しい応答オブジェクトを作成します。
フェッチアクションをサポートするために、システムプロパティ glide.hosts.allowlist では、fetch メソッドがアクセスできるホストを制御できます。これは、 RestMessageV2 や上記のような HTTP API に適用されます。glide.hosts.allowlist の詳細については、「Available system properties」を参照してください。
フェッチ:fetch(文字列、リソース、オブジェクトオプション)
ネットワークからリソースをフェッチするプロセスを開始し、応答が利用可能になると実行される Promise を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| resource | 文字列またはオブジェクト | 必須。フェッチするリソース。 指定できる値:
|
| オプション | オブジェクト | オプション。要求に適用するカスタム設定を含む RequestInit のフェッチ:スコープ対象、グローバル オブジェクト。 デフォルト:要求はカスタマイズ設定なしで渡されます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 応答オブジェクトに解決される Promise。 fetch() Promise は、リクエスト URL の形式が正しくない、またはネットワークエラーなどにより、リクエストが失敗した場合にのみ拒否されます。 注: fetch() の promise は、サーバーが 404 や 504 などのエラーを示す HTTP ステータスコードで応答した場合、却下されたとは見なされません。この場合、 then() ハンドラーを使用して ok と status 応答のフェッチ :スコープ対象、グローバルプロパティを確認します。 |
次の例は、 要求のフェッチ:request() を使用して新しい Request オブジェクトを作成し、 次に fetch() そのデータを取得する方法を示しています。コードの各部分がどのように使用されるかを簡単に説明します。
- request():URL、メソッド、およびヘッダーを使用して API 要求を構成します。
- fetch():フェッチ要求を行います。
- response.json():JSON 応答本文を JavaScript オブジェクトに解析します。(詳細については、 応答をフェッチ:json() を参照してください。
- console.log():コンソール API を使用してインシデント (data.result) を出力します (コンソール - log(Object 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" }
]