スクリプト済み REST API - ServiceNow Fluent
スクリプト済み REST API は、スクリプト済み REST サービス [sys_ws_definition] のエンドポイント、クエリパラメーター、およびヘッダーを定義します。
スクリプト化された REST Services の詳細については、「 Scripted REST APIs」を参照してください。
RestApi オブジェクト
スクリプト済み REST API [sys_ws_definition] を作成して、Web サービスエンドポイントを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| name | 文字列 | 必須。API ドキュメントで使用される API の名前。 |
| serviceId | 文字列 | 必須。URI パスでこの API を区別するために使用される API 識別子。API 名前空間内で一意である必要があります。 |
| active | ブーリアン | API が要求を処理できるかどうかを示すフラグ。 有効な値:
デフォルト:true |
| shortDescription | 文字列 | API ドキュメントで使用される API の簡単な説明。 |
| consumes | 文字列 | API のリソースが消費できるメディアタイプのリスト。 デフォルト:application/json、application/xml、text/xml |
| docLink | 文字列 | API に関する静的ドキュメントにリンクする URL。 |
| enforceAcl | アレイ | リソース [sys_security_acl] へのアクセス時に適用する ACL オブジェクトの変数識別子または ACL の sys_ids のリスト。詳細については、「アクセス制御リスト API - ServiceNow Fluent」を参照してください。 ACL を適用しない場合は、このプロパティを空のアレイ ( デフォルト:スクリプト済み REST 外部デフォルト |
| produces | 文字列 | API のリソースが生成できるメディアタイプのリスト。 デフォルト:application/json、application/xml、text/xml |
| routes | アレイ | API のリソース [sys_ws_operation]。詳細については、「routes オブジェクト」を参照してください。 |
| policy | 文字列 | アプリケーションファイルをダウンロードまたはインストールするときに保護する方法に関するポリシー。 有効な値:
|
| versions | アレイ | API のバージョン [sys_ws_version] のリスト。詳細については、「versions オブジェクト」を参照してください。 バージョンを指定すると、API のさまざまなバージョンとそのステータス (アクティブ、デフォルトバージョン、廃止など) を管理できます。 |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
import { RestApi } from '@servicenow/sdk/core'
import { process } from '../server/handler.js'
RestApi({
$id: Now.ID['rest1'],
name: 'customAPI',
serviceId: 'custom_api',
consumes: 'application/json',
routes: [
{
$id: Now.ID['route1'],
path: '/home/{id}',
script: process,
parameters: [{ $id: Now.ID['param1'], name: 'n_param' }],
headers: [{ $id: Now.ID['header1'], name: 'n_token' }],
enforceAcl: [acl],
version: 1,
},
],
enforceAcl: [acl],
versions: [
{
$id: Now.ID['v1'],
version: 1,
},
],
})
import { Acl } from "@servicenow/sdk/core";
const acl = Acl({
name: 'My random ACL',
type: 'rest_endpoint',
script: `answer = (Math.random() > 0.5)`,
active: true,
adminOverrides: false,
operations: ['execute'],
})routes オブジェクト
スクリプト済み REST リソース [sys_ws_operation] を作成して、HTTP メソッドと処理スクリプトを定義し、親サービスからの設定を上書きします。
RestApi オブジェクト内の routes オブジェクトを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| name | 文字列 | API ドキュメントで使用される API リソースの名前。 デフォルト:path プロパティの値 |
| script | スクリプト | 必須。カスタムスクリプトは、操作が要求を解析して応答する方法を定義します。 このプロパティは、JavaScript モジュールからの関数、スクリプトを含むアプリケーション内の別のファイルへの参照、またはインライン JavaScript をサポートします。 Format (形式):
|
| parameters | アレイ | ルートのクエリパラメーター [sys_ws_query_parameter] のリスト。詳細については、「パラメーターとヘッダーのオブジェクト」を参照してください。 |
| ヘッダー | アレイ | ルートのヘッダー [sys_ws_header] のリスト。詳細については、「パラメーターとヘッダーのオブジェクト」を参照してください。 |
| アクティブ | ブーリアン | リソースが使用されるかどうかを示すフラグ。 有効な値:
デフォルト:true |
| path | 文字列 | ベース API パスに対するリソースの相対パス。相対 URI には、/abc/{id} などのパスパラメーターを含めることができます。デフォルト:/ |
| shortDescription | 文字列 | API ドキュメントで使用される、リソースの簡単な説明。 |
| consumes | 文字列 | リソースが消費できるメディアタイプのリスト。 このプロパティは、PUT、PATCH、または POST メソッドで上書きできます。 デフォルト:RestApi オブジェクトの consumes プロパティの値 |
| enforceAcl | アレイ | リソース [sys_security_acl] へのアクセス時に適用する ACL オブジェクトの変数識別子または ACL の sys_ids のリスト。詳細については、「アクセス制御リスト API - ServiceNow Fluent」を参照してください。 ACL を適用しない場合は、このプロパティを空のアレイ ( デフォルト:スクリプト済み REST 外部デフォルト |
| produces | 文字列 | リソースが生成できるメディアタイプのリスト。 デフォルト:RestApi オブジェクトの produces プロパティの値 |
| requestExample | 文字列 | API ドキュメントで使用される、リソースの有効なサンプル要求の本文ペイロード。 |
| method | 文字列 | リソースが実装する HTTP メソッド。 有効な値:GET、POST、PUT、PATCH、DELETE デフォルト:GET |
| authorization | ブーリアン | リソースにアクセスするためにユーザーが認証される必要があるかどうかを示すフラグ。 有効な値:
デフォルト:true |
| 認証 | ブーリアン | リソースへのアクセス時に ACL を適用するかどうかを示すフラグ。 有効な値:
デフォルト:true |
| internalRole | ブーリアン | ルートに snc_internal ロールが必要かどうかを示すフラグ。 このプロパティは、明示的なロールプラグイン (com.glide.explicit_roles) が有効な場合のみサポートされます。 有効な値:
デフォルト:true |
| policy | 文字列 | アプリケーションファイルをダウンロードまたはインストールするときに保護する方法に関するポリシー。 有効な値:
|
| version | 番号 | API のバージョン。 versions プロパティが RestApi オブジェクトで使用されている場合、このプロパティは必須です。 このプロパティで指定されたバージョンは、/api/management/v1/table/{tableName} などのバージョンで URI を自動的に生成するために使用されます。バージョン番号は、URI がアクセスするエンドポイントのバージョンを識別します。バージョン番号を指定することで、既存の統合に影響を与えることなく変更をテストおよび展開できます。 |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
routes: [
{
$id: Now.ID['route1'],
path: '/home/{id}',
script: process,
parameters: [{ $id: Now.ID['param1'], name: 'n_param' }],
headers: [{ $id: Now.ID['header1'], name: 'n_token' }],
enforceAcl: [acl],
version: 1,
},
],
パラメーターとヘッダーのオブジェクト
スクリプト済み REST API でルートのクエリパラメーター [sys_ws_query_parameter] とヘッダー [sys_ws_header] を作成します。クエリパラメーターは、要求ユーザーが要求 URI で渡すことができる値を制御します。ヘッダーは、API が受け入れ、応答できる内容を指定します。
routes オブジェクト内の parameters オブジェクトと headers オブジェクトを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| name | 文字列 | 必須。API ドキュメントで使用されるパラメーターまたはヘッダーの名前。 |
| required | ブーリアン | パラメーターまたはヘッダーが必須かどうかを示すフラグ。 有効な値:
デフォルト値:false |
| exampleValue | 文字列 | API ドキュメントで使用される、パラメーターまたはヘッダーの有効な値の例。 |
| shortDescription | 文字列 | API ドキュメントで使用されるパラメーターまたはヘッダーの簡単な説明。 |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
parameters: [{ $id: Now.ID['param1'], name: 'n_param' }],
headers: [{ $id: Now.ID['header1'], name: 'n_token' }],
versions オブジェクト
スクリプト済み REST API [sys_ws_version] のバージョンを作成して、Web サービスエンドポイントを定義します。
RestApi オブジェクト内の versions オブジェクトを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| version | 番号 | 必須。REST API のバージョン。 |
| active | ブーリアン | REST API のバージョンが要求を処理できるかどうかを示すフラグ。 有効な値:
デフォルト:true |
| deprecated | ブーリアン | REST API のバージョンが廃止されているかどうかを示すフラグ。廃止されたバージョンに属するリソースは要求を処理できますが、ドキュメントでは「廃止」として識別されます。 有効な値:
デフォルト値:false |
| shortDescription | 文字列 | API ドキュメントに表示される REST API のバージョンの簡単な説明。 |
| isDefault | ブール | REST API のバージョンがデフォルトバージョンかどうかを示すフラグ。クライアントは、バージョンニングされている URI パスまたはバージョニングされていない URI パスを使用して、デフォルトバージョンにアクセスできます。 有効な値:
デフォルト値:false |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
versions: [
{
$id: Now.ID['v1'],
version: 1,
},
],