요청 및 응답 콘텐츠 유형 통제

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기3분
  • 스크립트된 REST API 요청 및 응답에 허용되는 컨텐츠 유형을 제어합니다.

    기본적으로 스크립트된 REST API는 application/json, application/xmltext/xml을 지원합니다. 사용자 정의 사용자 지정 콘텐츠 유형( json 또는 xml 하위 유형 포함)도 지원됩니다. 예를 들어 application/vnd.collection+jsonapplication/vnd.adobe.xdp+xml 은 각각 JSON 및 XML로 처리됩니다.
    중요사항:
    요청 본문 형식이 json 또는 xml 하위 유형이 아닌 경우 요청 본문 dataStream 필드만 사용하여 요청 본문에 액세스합니다. JSON이 아니거나 XML이 아닌 형식의 요청 본문 데이터, dataString, nextEntry() 또는 hasNext() 를 사용하면 500 오류 응답이 발생합니다.

    기본값 설정

    기본 지원 요청 형식기본 지원 응답 형식 필드를 사용하여 API의 기본값을 설정할 수 있습니다. 이러한 필드는 사용자가 Content-Type 및 Accept 요청 헤더에 각각 전달할 수 있는 허용 가능한 값을 정의합니다. 요청 사용자가 API 또는 리소스에서 지원하지 않는 Accept 또는 Content-Type 헤더를 지정하면 인스턴스는 HTTP 오류 코드 406 또는 415로 응답합니다.

    스크립팅된 REST 서비스 양식에서 지원되는 요청 형식지원되는 응답 형식을 사용하여 각 자원에 대해 이러한 값을 재정의할 수 있습니다.
    주:
    지원되는 요청 형식 필드는 PUT, POST 및 PATCH 자원에 대해서만 표시됩니다.

    와일드카드 값 사용

    유효한 컨텐츠 유형을 지정할 때 와일드카드 값을 사용할 수 있습니다.
    • 단일 문자로 된 와일드카드 검색을 수행하려면 퍼센트 기호(%) 문자를 사용합니다. 이 와일드카드는 percent-sign-character에 한 문자가 포함된 단어를 찾습니다. 예를 들어 text 또는 test와 같은 단어를 찾으려면 te%t를 검색하십시오.
    • 여러 문자로 된 와일드카드 검색을 수행하려면 별표(*) 문자를 사용합니다. 이 와일드카드는 별표 문자 대신 0개 이상의 문자가 포함된 단어를 찾습니다. 예를 들어 planned 또는 placed와 같은 단어를 찾으려면 pl*d를 검색합니다.

    x-www-form-urlencoded 콘텐츠 유형 사용

    REST API 또는 리소스가 application/x-www-form-urlencoded 콘텐츠 유형을 허용하는 경우 요청에 제공된 urlencoded 값을 JSON 맵으로 검색할 수 있습니다. 그런 다음 이러한 urlencoded 키-값 쌍을 요청 본문 또는 둘 다에 쿼리 매개 변수로 제공할 수 있습니다. 이러한 결합은 요청 매개변수에 결합되어 저장됩니다. request.queryParams 객체를 통해 이러한 매개변수에 액세스합니다.

    예를 들어, API가 application/x-www-form-urlencoded 콘텐츠 유형을 허용하도록 정의되어 있고 API가 다음과 같이 구현된 경우,
    (function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
    
     response.setBody(request.queryParams);
    
    })(request, response);
    … 다음 요청은 해당 응답을 생성합니다.
    POST to localhost:8080/api/now/some_api/some_resource?name3=value3&name4=value4
    본문:
    name1=value1&name2=value2
    응답:
    { "result":
        { "name4": [ "value4" ], "name3": [ "value3" ], "name2": [ "value2" ],
          "name1": [ "value1" ]
        }
    }

    응답에 이진 유형 보내기

    응답에서 이진 형식을 보낼 때 응답 콘텐츠 형식을 설정하고 RESTAPIResponseStream 개체를 사용하여 이진 스트림을 직접 작성해야 합니다. 응답 객체에서 getStreamWriter() 를 호출하여 이 객체에 액세스할 수 있습니다. 자세한 내용은 문서를 참조하십시오.