스크립팅된 REST API - ServiceNow Fluent
Scripted REST API에는 Scripted REST 서비스 [sys_ws_definition]에 대한 엔드포인트, 쿼리 매개변수 및 헤더를 정의하는 객체가 포함되어 있습니다.
RestApi 객체
스크립팅된 REST API [sys_ws_definition]를 만들어 웹 서비스 엔드포인트를 정의합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| $id | 문자열 또는 숫자 | 필수 다음 형식으로 제공되는 메타데이터 개체의 고유 ID입니다. 여기서 <value> 는 문자열 또는 숫자입니다.애플리케이션을 빌드할 때 이 ID는 고유한 sys_ID로 해시됩니다. |
| 이름 | 문자열 | 필수 API 설명서에 사용되는 API의 이름입니다. |
| service_id | 문자열 | 필수 URI 경로에서 이 API를 구분하는 데 사용되는 API 식별자입니다. API 네임스페이스 내에서 고유해야 합니다. |
| active | 부울 | API가 요청을 처리할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| short_description | 문자열 | API 설명서에 사용되는 API에 대한 간략한 설명입니다. |
| 소모 | 문자열 | API의 리소스에서 사용할 수 있는 미디어 유형 목록입니다. 기본값: application/json,application/xml,text/xml |
| doc_link | 문자열 | API에 대한 정적 문서에 연결되는 URL입니다. |
| enforce_acl | 배열 | 자원에 접근할 때 적용할 ACL 객체 또는 ACL sys_ids의 변수 식별자 목록입니다[sys_security_acl]. 자세한 내용은 접근 제어 목록 API - ServiceNow Fluent 문서를 참조하십시오. ACL을 적용하지 않으려면 이 속성을 빈 배열( 기본값: 스크립팅된 REST 외부 기본값 |
| 생성 | 문자열 | API의 리소스가 생성할 수 있는 미디어 유형 목록입니다. 기본값: application/json,application/xml,text/xml |
| 경로 | 배열 | API의 자원 [sys_ws_operation]입니다. 자세한 내용은 경로 객체 문서를 참조하십시오. |
| 정책 | 문자열 | 다운로드 또는 설치 시 애플리케이션 파일의 보호 방법에 대한 정책입니다. 유효한 값은 다음과 같습니다.
|
| 버전 | 배열 | API의 버전 목록[sys_ws_version]입니다. 자세한 내용은 버전 객체 문서를 참조하십시오. 버전을 지정하면 API의 다양한 버전과 해당 상태(예: 활성 상태, 기본 버전 또는 사용 중단 여부)를 관리할 수 있습니다. |
import { RestApi } from '@servicenow/sdk/core'
import { process } from '../server/handler.js'
RestApi({
$id: Now.ID['rest1'],
name: 'customAPI',
service_id: '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' }],
enforce_acl: [acl],
version: 1,
},
],
enforce_acl: [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,
admin_overrides: false,
operations: ['execute'],
})경로 객체
HTTP 메서드, 처리 스크립트를 정의하고 상위 서비스의 설정을 재정의하는 스크립팅된 REST 자원 [sys_ws_operation]을 만듭니다.
RestApi 개체 내에서 routes 개체를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| $id | 문자열 또는 숫자 | 필수 다음 형식으로 제공되는 메타데이터 개체의 고유 ID입니다. 여기서 <value> 는 문자열 또는 숫자입니다.애플리케이션을 빌드할 때 이 ID는 고유한 sys_ID로 해시됩니다. |
| 이름 | 문자열 | API 설명서에 사용되는 API 자원의 이름입니다. 기본값: 경로 속성의 값 |
| 스크립트 | 스크립트 | 필수 스크립트 태그 앞에 오는 함수 또는 인라인 스크립트입니다. 사용자 지정 스크립트는 작업이 요청을 구문 분석하고 응답하는 방법을 정의합니다.함수의 경우 JavaScript 모듈에서 내보내고 .now.ts 파일로 가져온 함수, 함수 표현식 또는 기본 함수의 이름을 사용합니다. JavaScript 모듈에 대한 자세한 내용은 을 참조하십시오 JavaScript 모듈 및 타사 라이브러리. 인라인 스크립트는 다음 형식으로 script 태그를 사용합니다.
|
| active | 부울 | 자원이 사용되는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| path | 문자열 | 기본 API 경로에 상대적인 자원의 경로입니다. 상대 URI에는 '/abc/{id}'와 같은 경로 매개 변수가 포함될 수 있습니다.기본값:/ |
| short_description | 문자열 | API 설명서에 사용되는 자원에 대한 간략한 설명입니다. |
| 소모 | 문자열 | 리소스에서 사용할 수 있는 미디어 유형의 목록입니다. 이 속성은 PUT, PATCH 또는 POST 메서드로 재정의할 수 있습니다. 기본값: RestApi 개체의 consume 속성 값 |
| enforce_acl | 배열 | 자원에 접근할 때 적용할 ACL 객체 또는 ACL sys_ids의 변수 식별자 목록입니다[sys_security_acl]. 자세한 내용은 접근 제어 목록 API - ServiceNow Fluent 문서를 참조하십시오. ACL을 적용하지 않으려면 이 속성을 빈 배열( 기본값: 스크립팅된 REST 외부 기본값 |
| 생성 | 문자열 | 리소스가 생성할 수 있는 미디어 유형의 목록입니다. 기본값: RestApi 개체의 produce 속성 값 |
| request_example | 문자열 | 자원에 대한 유효한 샘플 요청 본문 페이로드로, API 설명서에 사용됩니다. |
| 방법 | 문자열 | 자원이 구현하는 HTTP 메서드입니다. 유효한 값: GET, POST, PUT, PATCH, DELETE 기본값: GET |
| 권한 부여 | 부울 | 사용자가 자원에 액세스하기 위해 인증되어야 하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| 인증 | 부울 | 자원에 접근할 때 ACL이 적용되는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| 내부 역할 | 부울 | 경로에 snc_internal 역할이 필요한지 여부를 나타내는 플래그입니다. 이 속성은 Explicit Roles 플러그인(com.glide.explicit_roles)이 활성화된 경우에만 지원됩니다. 유효한 값은 다음과 같습니다.
기본값: true |
| 정책 | 문자열 | 다운로드 또는 설치 시 애플리케이션 파일의 보호 방법에 대한 정책입니다. 유효한 값은 다음과 같습니다.
|
| 버전 | 번호 | API의 버전입니다. 버전 속성이 RestApi 개체에서 사용되는 경우 이 속성이 필요합니다. 이 속성으로 지정된 버전은 /api/management/v1/table/{tableName}과 같은 버전으로 URI를 자동으로 생성하는 데 사용됩니다. 버전 번호는 URI가 액세스하는 엔드포인트 버전을 식별합니다. 버전 번호를 지정하면 기존 통합에 영향을 주지 않고 변경 내용을 테스트하고 배포할 수 있습니다. |
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' }],
enforce_acl: [acl],
version: 1,
},
],
매개 변수 및 헤더 개체
스크립팅된 REST API에서 경로에 대한 쿼리 매개변수 [sys_ws_query_parameter] 및 헤더 [sys_ws_header]를 생성합니다. 쿼리 매개 변수는 요청 사용자가 요청 URI에 전달할 수 있는 값을 제어합니다. 헤더는 API가 수락하고 응답할 수 있는 항목을 지정합니다.
routes 객체 내에서 parameters 및 headers 객체를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| $id | 문자열 또는 숫자 | 필수 다음 형식으로 제공되는 메타데이터 개체의 고유 ID입니다. 여기서 <value> 는 문자열 또는 숫자입니다.애플리케이션을 빌드할 때 이 ID는 고유한 sys_ID로 해시됩니다. |
| 이름 | 문자열 | 필수 API 설명서에 사용되는 매개변수 또는 헤더의 이름입니다. |
| 필수 | 부울 | 매개변수 또는 헤더가 필요한지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| example_value | 문자열 | API 설명서에 사용되는 매개변수 또는 헤더의 유효한 값 예입니다. |
| short_description | 문자열 | API 설명서에 사용되는 매개변수 또는 헤더에 대한 간략한 설명입니다. |
parameters: [{ $id: Now.ID['param1'], name: 'n_param' }],
headers: [{ $id: Now.ID['header1'], name: 'n_token' }],
버전 객체
웹 서비스 엔드포인트를 정의하기 위해 스크립트된 REST API [sys_ws_version]의 버전을 만듭니다.
RestApi 개체 내에서 versions 개체를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| $id | 문자열 또는 숫자 | 필수 다음 형식으로 제공되는 메타데이터 개체의 고유 ID입니다. 여기서 <value> 는 문자열 또는 숫자입니다.애플리케이션을 빌드할 때 이 ID는 고유한 sys_ID로 해시됩니다. |
| 버전 | 번호 | 필수 REST API의 버전입니다. |
| active | 부울 | REST API의 버전이 요청을 처리할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| 사용하지 않음 | 부울 | REST API의 버전이 더 이상 사용되지 않는지 여부를 나타내는 플래그입니다. 사용되지 않는 버전에 속하는 자원은 요청을 서비스할 수 있지만 문서에는 사용되지 않는 것으로 표시됩니다. 유효한 값은 다음과 같습니다.
기본값: false |
| short_description | 문자열 | API 설명서에 나타나는 REST API의 버전에 대한 간략한 설명입니다. |
| is_default | 부울 | REST API의 버전이 기본 버전인지 여부를 나타내는 플래그입니다. 클라이언트는 버전이 지정되거나 버전이 지정되지 않은 URI 경로를 사용하여 기본 버전에 액세스할 수 있습니다. 유효한 값은 다음과 같습니다.
기본값: false |
versions: [
{
$id: Now.ID['v1'],
version: 1,
},
],