---
sourceDocument: 호주 애플리케이션 빌드 또는 수정
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/application-development

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 애플리케이션 빌드 또는 수정

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# 스크립트 기반 REST API

# 스크립팅된 REST API - ServiceNow Fluent {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 13분

스크립팅된 REST API는 스크립팅된 REST 서비스\[sys_ws_definition\]에 대한 엔드포인트, 쿼리 매개변수 및 헤더를 정의합니다.
주:  
최신 ServiceNow Fluent API 설명서 및 예제는 [ServiceNow Fluent API 참조](https://servicenow.github.io/sdk/) 및 [ServiceNow SDK 예제 리포지토리](https://github.com/ServiceNow/sdk-examples) 는 의 위치에 있습니다 GitHub.

스크립트된 REST 서비스에 대한 일반적인 정보는 다음 문서를 참조하십시오 [Scripted REST APIs](https://www.servicenow.com/docs/access?context=c_CustomWebServices&version=australia&pubname=australia-api-reference&ft:locale=en-US).
**관련 개념**   

* [ServiceNow Fluent](https://servicenow-prod.fluidtopics.net/LkgjsL6Ogxn6hUPsJ73QXQ "도메인별 프로그래밍 언어를 사용하여 소스 코드에서 애플리케이션 메타데이터를 정의합니다.ServiceNow Fluent")

## RestApi 객체 {#ariaid-title2}

스크립트된 REST API \[sys_ws_definition\]를 만들어 웹 서비스 엔드포인트를 정의합니다.
{#restapi-object-now-ts__table_vy2_525_jq__entry__3}{#restapi-object-now-ts__now-id-desc2}

| 이름 | 유형 | 설명 |
|-|-|-|
| $id | 문자열 또는 숫자 | 필수 메타데이터 객체의 고유 ID입니다. 애플리케이션을 빌드할 때 이 ID는 고유한 sys_id으로 해시됩니다. 자세한 내용은 [ServiceNow Fluent 언어 구성](https://servicenow-prod.fluidtopics.net/bd4_Ogu8TJjhKosNwonOfw "ServiceNow Fluent 언어 구문은 API를 사용하여 ServiceNow Fluent 소스 코드에서 개발하기 위한 추가 기능을 제공합니다.") 문서를 참조하십시오. 형식: `Now.ID['문자열' 또는 숫자]` |
| 이름 | 문자열 | 필수 API 설명서에 사용되는 API의 이름입니다. |
| serviceId | 문자열 | 필수 URI 경로에서 이 API를 구분하는 데 사용되는 API 식별자입니다. API 네임스페이스 내에서 고유해야 합니다. |
| 활성 | 부울 | API가 요청을 처리할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: API가 요청을 서비스할 수 있습니다. * false: API가 요청을 서비스할 수 없습니다. {#restapi-object-now-ts__ul_cxj_srr_4bc} 기본값: true |
| shortDescription | 문자열 | API 설명서에 사용되는 API에 대한 간략한 설명입니다. |
| 소비 | 문자열 | API의 자원에서 사용할 수 있는 미디어 유형의 목록입니다. 기본값: application/json,application/xml,text/xml |
| 문서 링크 | 문자열 | API에 대한 정적 문서로 연결되는 URL입니다. |
| enforceAcl | 배열 | 자원 \[sys_security_acl\]에 접근할 때 적용할 ACL 개체 또는 ACL sys_ids의 변수 식별자 목록입니다. 자세한 내용은 [접근 제어 목록 API - ServiceNow Fluent](https://servicenow-prod.fluidtopics.net/~zM0uBzjghcyvwtiqK7Mbg#acl-api-now-ts "접근 제어 목록 API는 애플리케이션의 일부를 보호하는 접근 제어 목록[sys_security_acl]을 정의합니다.") 문서를 참조하십시오. ACL을 적용하지 않으려면 이 속성을 빈 배열(`[]`)으로 설정합니다. 기본값: 스크립팅된 REST 외부 기본값 |
| 생산 | 문자열 | API의 자원이 생산할 수 있는 미디어 유형의 목록입니다. 기본값: application/json,application/xml,text/xml |
| 경로 | 배열 | API에 대한 자원 \[sys_ws_operation\]입니다. 자세한 내용은 [경로 객체](https://servicenow-prod.fluidtopics.net/xHtIN5ty4Hm79n8sipxG2w#routes-object-now-ts "HTTP 메서드와 처리 스크립트를 정의하고 상위 서비스의 설정을 재정의하는 스크립팅된 REST 자원 sys_ws_operation]을 만듭니다.") 문서를 참조하십시오. |
| 정책 | 문자열 | 다운로드 또는 설치 시 애플리케이션 파일의 보호 방법에 대한 정책입니다. 유효한 값은 다음과 같습니다. * 읽기: 파일만 볼 수 있습니다. * 보호됨: 암호 권한이 있는 사용자가 파일을 편집할 수 있습니다. {#restapi-object-now-ts__ul_pg4_nd2_mbc} |
| 버전 | 배열 | API 버전 \[sys_ws_version\] 목록입니다. 자세한 내용은 [버전 객체](https://servicenow-prod.fluidtopics.net/xHtIN5ty4Hm79n8sipxG2w#version-object-now-ts "웹 서비스 엔드포인트를 정의하는 스크립트된 REST API [sys_ws_version]에 대한 버전을 만듭니다.") 문서를 참조하십시오. 버전을 지정하면 다양한 버전의 API와 해당 상태(예: 활성, 기본 버전 또는 사용되지 않음 여부)를 관리할 수 있습니다. |
| $meta | 객체 | 애플리케이션 메타데이터의 메타데이터입니다. installMethod 속성을 사용하면 애플리케이션 메타데이터를 특정 상황에서만 로드되는 출력 디렉터리에 매핑할 수 있습니다. $meta: { installMethod: 'String' } installMethod에 유효한 값: * demo: 데모 데이터 로드 옵션을 선택한 경우 애플리케이션과 함께 설치할 metadata/unload.demo 디렉터리에 애플리케이션 메타데이터를 출력합니다. * 첫 번째 설치: 애플리케이션이 인스턴스에 처음 설치될 때만 설치할 메타데이터 /언로드 디렉터리에 애플리케이션 메타데이터를 출력합니다. {#restapi-object-now-ts__ul_n3q_y3s_42c} |
[표 1. 속성]

{#restapi-object-now-ts__table_vy2_525_jq}  

    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,
            },
        ],
    })

참조된 ACL은 ACL 객체를 사용하여 정의됩니다.

    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'],
    })

## 경로 객체 {#ariaid-title3}

HTTP 메서드와 처리 스크립트를 정의하고 상위 서비스의 설정을 재정의하는 스크립팅된 REST 자원 sys_ws_operation\]을 만듭니다.
RestApi 객체 내에서 routes 객체를 사용합니다.
{#routes-object-now-ts__table_vy2_525_jq__entry__3}{#routes-object-now-ts__now-id-desc2}

| 이름 | 유형 | 설명 |
|-|-|-|
| $id | 문자열 또는 숫자 | 필수 메타데이터 객체의 고유 ID입니다. 애플리케이션을 빌드할 때 이 ID는 고유한 sys_id으로 해시됩니다. 자세한 내용은 [ServiceNow Fluent 언어 구성](https://servicenow-prod.fluidtopics.net/bd4_Ogu8TJjhKosNwonOfw "ServiceNow Fluent 언어 구문은 API를 사용하여 ServiceNow Fluent 소스 코드에서 개발하기 위한 추가 기능을 제공합니다.") 문서를 참조하십시오. 형식: `Now.ID['문자열' 또는 숫자]` |
| 이름 | 문자열 | API 설명서에 사용되는 API 자원의 이름입니다. 기본값: path 속성의 값 |
| 스크립트 | 스크립트 | 필수 사용자 지정 스크립트는 작업이 요청을 구문 분석하고 응답하는 방법을 정의합니다. 이 속성은 JavaScript 모듈의 함수, 스크립트가 포함된 애플리케이션의 다른 파일에 대한 참조 또는 인라인 JavaScript를 지원합니다. 체재: * 함수의 경우 JavaScript 모듈에서 익스포트한 함수, 함수 표현식 또는 기본 함수의 이름을 사용하여 .now.ts 파일로 임포트합니다. JavaScript 모듈에 대한 자세한 내용은 다음 문서를 참조하십시오 [JavaScript 모듈 및 타사 라이브러리](https://servicenow-prod.fluidtopics.net/BgHqCmt1oAyXsb0oVdi_9Q "JavaScript 모듈을 사용하여 코드 베이스를 최적화하고 관련 코드를 그룹화하거나 타사 라이브러리를 추가하고 애플리케이션 내에서 코드를 재사용합니다.").{#routes-object-now-ts__script-function} * 다른 파일의 텍스트 콘텐츠를 사용하려면 `Now.include('경로/대상/파일')` 형식을 사용하여 애플리케이션에서 파일을 참조합니다. 자세한 내용은 [ServiceNow Fluent 언어 구성](https://servicenow-prod.fluidtopics.net/bd4_Ogu8TJjhKosNwonOfw "ServiceNow Fluent 언어 구문은 API를 사용하여 ServiceNow Fluent 소스 코드에서 개발하기 위한 추가 기능을 제공합니다.") 문서를 참조하십시오. * 인라인 스크립트를 제공하려면 여러 줄의 코드에 문자열 리터럴 또는 템플릿 리터럴을 사용합니다( `'Script' 또는 'Script'`). {#routes-object-now-ts__ul_rtr_vyd_1gc} |
| 매개변수 | 배열 | 경로에 대한 쿼리 매개변수 \[sys_ws_query_parameter\] 목록입니다. 자세한 내용은 [매개변수 및 헤더 객체](https://servicenow-prod.fluidtopics.net/xHtIN5ty4Hm79n8sipxG2w#routes-params-headers-objects-now-ts "스크립팅된 REST API에서 경로에 대한 쿼리 매개변수 [sys_ws_query_parameter] 및 헤더 [sys_ws_header]를 만듭니다. 쿼리 매개변수는 요청 사용자가 요청 URI에 전달할 수 있는 값을 제어합니다. 헤더는 API가 수락하고 응답할 수 있는 항목을 지정합니다.") 문서를 참조하십시오. |
| 헤더 | 배열 | 경로에 대한 헤더 \[sys_ws_header\] 목록입니다. 자세한 내용은 [매개변수 및 헤더 객체](https://servicenow-prod.fluidtopics.net/xHtIN5ty4Hm79n8sipxG2w#routes-params-headers-objects-now-ts "스크립팅된 REST API에서 경로에 대한 쿼리 매개변수 [sys_ws_query_parameter] 및 헤더 [sys_ws_header]를 만듭니다. 쿼리 매개변수는 요청 사용자가 요청 URI에 전달할 수 있는 값을 제어합니다. 헤더는 API가 수락하고 응답할 수 있는 항목을 지정합니다.") 문서를 참조하십시오. |
| 활성 | 부울 | 자원이 사용되었는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 자원이 사용됩니다. * false: 자원이 사용되지 않습니다. {#routes-object-now-ts__ul_cxj_srr_4bc} 기본값: true |
| 경로 | 문자열 | 기본 API 경로를 기준으로 하는 자원의 경로입니다. 상대 URI에는 `'/abc/{id}'`와 같은 경로 매개변수가 포함될 수 있습니다. 기본값: / |
| shortDescription | 문자열 | API 문서에 사용되는 자원에 대한 간략한 설명입니다. |
| 소비 | 문자열 | 자원이 사용할 수 있는 미디어 유형의 목록입니다. 이 속성은 PUT, PATCH 또는 POST 메서드를 사용하여 재정의할 수 있습니다. 기본값: RestApi 객체의 consumes 속성 값 |
| enforceAcl | 배열 | 자원 \[sys_security_acl\]에 접근할 때 적용할 ACL 개체 또는 ACL sys_ids의 변수 식별자 목록입니다. 자세한 내용은 [접근 제어 목록 API - ServiceNow Fluent](https://servicenow-prod.fluidtopics.net/~zM0uBzjghcyvwtiqK7Mbg#acl-api-now-ts "접근 제어 목록 API는 애플리케이션의 일부를 보호하는 접근 제어 목록[sys_security_acl]을 정의합니다.") 문서를 참조하십시오. ACL을 적용하지 않으려면 이 속성을 빈 배열(`[]`)으로 설정합니다. 기본값: 스크립팅된 REST 외부 기본값 |
| 생산 | 문자열 | 자원이 생산할 수 있는 미디어 유형의 목록입니다. 기본값: RestApi 객체의 produces 속성 값 |
| 요청예시 | 문자열 | API 설명서에 사용되는 자원에 대한 유효한 샘플 요청 본문 페이로드입니다. |
| 방법 | 문자열 | 자원이 구현하는 HTTP 메서드입니다. 유효한 값: GET, POST, PUT, PATCH, DELETE 기본값: GET |
| 권한 부여 | 부울 | 사용자가 자원에 액세스하기 위해 인증되어야 하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 사용자가 자원에 액세스하려면 인증되어야 합니다. * false: 자원에 액세스하는 데 인증이 필요하지 않습니다. {#routes-object-now-ts__ul_hkg_kr3_qbc} 기본값: true |
| 인증 | 부울 | 자원에 액세스할 때 ACL이 적용되는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 자원에 액세스할 때 ACL이 적용됩니다. * false: 자원에 액세스할 때 ACL이 적용되지 않습니다. {#routes-object-now-ts__ul_ofg_sr3_qbc} 기본값: true |
| internalRole | 부울 | 경로에 snc_internal 역할이 필요한지 여부를 나타내는 플래그입니다. 이 속성은 Explicit Roles 플러그인(com.glide.explicit_roles)이 활성화된 경우에만 지원됩니다. 유효한 값은 다음과 같습니다. * true: 경로에 snc_internal 역할이 필요합니다. * false: 경로에 snc_internal 역할이 필요하지 않습니다. {#routes-object-now-ts__ul_ep4_mqx_xbc} 기본값: true |
| 정책 | 문자열 | 다운로드 또는 설치 시 애플리케이션 파일의 보호 방법에 대한 정책입니다. 유효한 값은 다음과 같습니다. * 읽기: 파일만 볼 수 있습니다. * 보호됨: 암호 권한이 있는 사용자가 파일을 편집할 수 있습니다. {#routes-object-now-ts__ul_pg4_nd2_mbc} |
| 버전 | 번호 | API의 버전입니다. 버전 속성이RestApi 객체에서 사용되는 경우 이 속성이 필요합니다. 이 속성으로 지정된 버전은 /api/management/v1/table/{tableName}과 같은 버전의 URI를 자동으로 생성하는 데 사용됩니다. 버전 번호는 URI가 액세스하는 엔드포인트 버전을 식별합니다. 버전 번호를 지정하면 기존 통합에 영향을 주지 않고 변경 내용을 테스트하고 배포할 수 있습니다. |
| $meta | 객체 | 애플리케이션 메타데이터의 메타데이터입니다. installMethod 속성을 사용하면 애플리케이션 메타데이터를 특정 상황에서만 로드되는 출력 디렉터리에 매핑할 수 있습니다. $meta: { installMethod: 'String' } installMethod에 유효한 값: * demo: 데모 데이터 로드 옵션을 선택한 경우 애플리케이션과 함께 설치할 metadata/unload.demo 디렉터리에 애플리케이션 메타데이터를 출력합니다. * 첫 번째 설치: 애플리케이션이 인스턴스에 처음 설치될 때만 설치할 메타데이터 /언로드 디렉터리에 애플리케이션 메타데이터를 출력합니다. {#routes-object-now-ts__ul_n3q_y3s_42c} |
[표 2. 속성]

{#routes-object-now-ts__table_vy2_525_jq}  

    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,
       },
    ],

### 매개변수 및 헤더 객체 {#ariaid-title4}

스크립팅된 REST API에서 경로에 대한 쿼리 매개변수 \[sys_ws_query_parameter\] 및 헤더 \[sys_ws_header\]를 만듭니다. 쿼리 매개변수는 요청 사용자가 요청 URI에 전달할 수 있는 값을 제어합니다. 헤더는 API가 수락하고 응답할 수 있는 항목을 지정합니다.
routes 객체 내에서 매개변수 및 헤더 객체를 사용합니다.
{#routes-params-headers-objects-now-ts__table_vy2_525_jq__entry__3}{#routes-params-headers-objects-now-ts__now-id-desc2}

| 이름 | 유형 | 설명 |
|-|-|-|
| $id | 문자열 또는 숫자 | 필수 메타데이터 객체의 고유 ID입니다. 애플리케이션을 빌드할 때 이 ID는 고유한 sys_id으로 해시됩니다. 자세한 내용은 [ServiceNow Fluent 언어 구성](https://servicenow-prod.fluidtopics.net/bd4_Ogu8TJjhKosNwonOfw "ServiceNow Fluent 언어 구문은 API를 사용하여 ServiceNow Fluent 소스 코드에서 개발하기 위한 추가 기능을 제공합니다.") 문서를 참조하십시오. 형식: `Now.ID['문자열' 또는 숫자]` |
| 이름 | 문자열 | 필수 API 설명서에 사용되는 매개변수 또는 헤더의 이름입니다. |
| 필수 | 부울 | 매개변수 또는 헤더가 필요한지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 매개변수 또는 헤더가 필요합니다. * false: 매개변수 또는 헤더가 필요하지 않습니다. {#routes-params-headers-objects-now-ts__ul_ofg_sr3_qbc} 기본값: false |
| exampleValue | 문자열 | API 설명서에 사용되는 매개변수 또는 헤더의 유효한 값의 예입니다. |
| shortDescription | 문자열 | API 설명서에 사용되는 매개변수 또는 헤더에 대한 간략한 설명입니다. |
| $meta | 객체 | 애플리케이션 메타데이터의 메타데이터입니다. installMethod 속성을 사용하면 애플리케이션 메타데이터를 특정 상황에서만 로드되는 출력 디렉터리에 매핑할 수 있습니다. $meta: { installMethod: 'String' } installMethod에 유효한 값: * demo: 데모 데이터 로드 옵션을 선택한 경우 애플리케이션과 함께 설치할 metadata/unload.demo 디렉터리에 애플리케이션 메타데이터를 출력합니다. * 첫 번째 설치: 애플리케이션이 인스턴스에 처음 설치될 때만 설치할 메타데이터 /언로드 디렉터리에 애플리케이션 메타데이터를 출력합니다. {#routes-params-headers-objects-now-ts__ul_n3q_y3s_42c} |
[표 3. 속성]

{#routes-params-headers-objects-now-ts__table_vy2_525_jq}  

    parameters: [{ $id: Now.ID['param1'],  name: 'n_param' }],
    headers: [{ $id: Now.ID['header1'],  name: 'n_token' }],

## 버전 객체 {#ariaid-title5}

웹 서비스 엔드포인트를 정의하는 스크립트된 REST API \[sys_ws_version\]에 대한 버전을 만듭니다.
RestApi 객체 내에서 versions 객체를 사용합니다.
{#version-object-now-ts__table_vy2_525_jq__entry__3}{#version-object-now-ts__now-id-desc2}

| 이름 | 유형 | 설명 |
|-|-|-|
| $id | 문자열 또는 숫자 | 필수 메타데이터 객체의 고유 ID입니다. 애플리케이션을 빌드할 때 이 ID는 고유한 sys_id으로 해시됩니다. 자세한 내용은 [ServiceNow Fluent 언어 구성](https://servicenow-prod.fluidtopics.net/bd4_Ogu8TJjhKosNwonOfw "ServiceNow Fluent 언어 구문은 API를 사용하여 ServiceNow Fluent 소스 코드에서 개발하기 위한 추가 기능을 제공합니다.") 문서를 참조하십시오. 형식: `Now.ID['문자열' 또는 숫자]` |
| 버전 | 번호 | 필수 REST API의 버전입니다. |
| 활성 | 부울 | REST API의 버전이 요청을 처리할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: API의 버전이 요청을 처리할 수 있습니다. * false: API 버전이 요청을 서비스할 수 없습니다. {#version-object-now-ts__ul_cxj_srr_4bc} 기본값: true |
| 사용하지 않음 | 부울 | REST API의 버전이 더 이상 사용되지 않는지 여부를 나타내는 플래그입니다. 사용되지 않는 버전에 속하는 자원은 요청을 서비스할 수 있지만 설명서에는 사용되지 않는 것으로 표시됩니다. 유효한 값은 다음과 같습니다. * true: API 버전이 사용되지 않는 것으로 식별됩니다. * false: API 버전이 사용되지 않는 것으로 식별되지 않습니다. {#version-object-now-ts__ul_yqy_njx_xbc} 기본값: false |
| shortDescription | 문자열 | API 문서에 나타나는 REST API 버전에 대한 간략한 설명입니다. |
| isDefault | 부울 | REST API의 버전이 기본 버전인지 여부를 나타내는 플래그입니다. 클라이언트는 버전이 있거나 버전이 없는 URI 경로를 사용하여 기본 버전에 액세스할 수 있습니다. 유효한 값은 다음과 같습니다. * true: API 버전이 기본 버전입니다. * false: API 버전이 기본 버전이 아닙니다. {#version-object-now-ts__ul_isx_qjx_xbc} 기본값: false |
| $meta | 객체 | 애플리케이션 메타데이터의 메타데이터입니다. installMethod 속성을 사용하면 애플리케이션 메타데이터를 특정 상황에서만 로드되는 출력 디렉터리에 매핑할 수 있습니다. $meta: { installMethod: 'String' } installMethod에 유효한 값: * demo: 데모 데이터 로드 옵션을 선택한 경우 애플리케이션과 함께 설치할 metadata/unload.demo 디렉터리에 애플리케이션 메타데이터를 출력합니다. * 첫 번째 설치: 애플리케이션이 인스턴스에 처음 설치될 때만 설치할 메타데이터 /언로드 디렉터리에 애플리케이션 메타데이터를 출력합니다. {#version-object-now-ts__ul_n3q_y3s_42c} |
[표 4. 속성]

{#version-object-now-ts__table_vy2_525_jq}  

    versions: [
     {
       $id: Now.ID['v1'],
       version: 1,
     },
    ],


