메시지 출력 형식

새 웹 서비스 HTTP 제어 매개변수를 추가하면 REST 유사 HTTP 바인드가 사용되는 출력 메시지용으로 생성될 출력 형식을 지정할 수 있습니다.

선택적 outputFormat 제어 매개변수를 사용하면 웹 서비스에서 조작을 실행하여 출력 메시지 형식을 지정할 수 있습니다. 웹 서비스 전개 시 outputFormat 매개변수 값을 지정하는 경우 웹 서비스에서 조작이 실행될 때마다 지정된 출력 형식이 사용됩니다. 전개 시에 매개변수 값을 지정하지 않는 경우 웹 서비스에서 조작이 실행되면 출력 형식을 지정할 수 있습니다. 런타임 시 출력 형식이 지정되지 않으면 디폴트 출력 형식이 사용됩니다.

디폴트 출력 형식은 테이블 1에 나와 있는 것처럼 HTTP 바인드에 따라 결정됩니다.

표 1. HTTP 바인드의 디폴트 출력 형식
바인드 디폴트 출력 형식 MIME 유형
HTTP GET XML text/xml
HTTP POST(url 인코딩됨) XML text/xml
HTTP POST(xml) XML text/xml
HTTP POST(json) JSON application/json
출력 형식 예외
SOAP
SOAP 바인드의 경우 출력 형식에 영향을 줄 수 있는 방법이 없습니다. 출력 형식은 항상 XML입니다.
XSL 출력
조작에 출력 메시지를 변환하는 XSL이 지정된 경우 outputFormat 제어 매개변수가 무시됩니다. 이 경우 형식 및 MIME 유형 모두 XSL에 의해 결정됩니다.

디폴트 JSON 출력 형식

디폴트 JSON 출력 형식은 www.json.org에 있는 JSON 스펙을 따릅니다.

컬럼 이름
컬럼 이름은 JSON 오브젝트 이름입니다.
데이터 유형
XML 출력 형식에 사용되는 것과 동일한 데이터 유형 변환이 JSON 출력 형식에 사용됩니다.
  • 날짜/시간 값은 XSD 날짜/시간 형식을 사용하며 JSON 문자열로 표시됩니다. JSON에는 날짜/시간 형식이 없습니다.
  • 실행 파일 값은 Base-64로 인코딩된 JSON 문자열입니다.
  • 숫자는 모두 JSON 숫자로 매핑됩니다.
  • SQL NULL은 JSON NULL로 매핑됩니다.
  • XML은 JSON 문자열로 임베드됩니다.
  • SQL 부울은 JSON 부울로 매핑됩니다.
조작 유형별 출력 형식
다음 정보에서는 조작 유형에 기반을 둔 여러 가지 형식을 설명합니다.
SQL SELECT(결과 세트)
결과 세트는 JSON 배열로 리턴됩니다. 다음은 여러 직원에 대해 리턴된 정보가 포함된 결과 세트를 보여 주는 예입니다.
{"getEmployeesResponse":
    [
        {
        "EMPNO":"000010",
        "FIRSTNME":"CHRISTINE",
        "MIDINIT":"I",
        "LASTNAME":"HAAS",
        "WORKDEPT":"A00",
        "PHONENO":"3978",
        "HIREDATE":"1995-01-01Z",
        "JOB":"PRES    ",
        "EDLEVEL":18,
        "SEX":"F",
        "BIRTHDATE":"1963-08-24Z",
        "SALARY":96800.00,
        "BONUS":21113.19,
        "COMM":4220.00},
        {
        "EMPNO":"000020",
        "FIRSTNME":"MICHAEL",
        "MIDINIT":"L",
        "LASTNAME":"THOMPSON", ...}
    ]
}
조작 정의 시 쿼리의 단일 행만 페치 체크 박스를 선택한 경우 쿼리의 첫 번째 행에 대한 JSON 오브젝트가 JSON 배열 대신 리턴됩니다. 다음은 쿼리의 첫 번째 행이 JSON 오브젝트로 리턴되는 예를 보여 주는 코드입니다.
{"getEmployeesResponse":
    {
    "EMPNO":"000010",
    "FIRSTNME":"CHRISTINE",
    "MIDINIT":"I",
    "LASTNAME":"HAAS",
    "WORKDEPT":"A00",
    "PHONENO":"3978",
    "HIREDATE":"1995-01-01Z",
    "JOB":"PRES    ",
    "EDLEVEL":18,
    "SEX":"F",
    "BIRTHDATE":"1963-08-24Z",
    "SALARY":96800.00,
    "BONUS":21113.19,
    "COMM":4220.00}
}
SQL UPDATE(INSERT, DELETE 또는 MERGE)(갱신 계수)
다음 코드는 갱신 계수가 사용된 SQL UPDATE 조작의 JSON 메시지 형식에 대한 예입니다.
{"updateEmployeeResponse":{"updateCount":1}}
스토어드 프로시저 호출
다음 코드는 스토어드 프로시저 호출에서 리턴된 각 행 세트의 JSON 배열을 보여 줍니다.
{"BONUS_INCREASEResponse":
    {
    "P_DEPTSWITHOUTNEWBONUSES":"",
    "P_COUNTDEPTSVIEWED":8,
    "P_COUNTDEPTSBONUSCHANGED":8,
    "P_ERRORMSG":"",
    "rowset":
        [
            {
            "WORKDEPT":"A00",
            "EMPNO":"000010",
            "BONUS":25546.95},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000110",
            "BONUS":22992.12},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000120",
            ...}
        ],
    "rowset2":
        [
            {
            "WORKDEPT":"A00",
            "EMPNO":"000010",
            "BONUS":25546.95},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000110",
            "BONUS":22992.12},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000120",
            ...}
        ],
        ...
    }
}
XQuery
XQuery의 결과는 JSON 배열로 리턴됩니다. 다음은 JSON 배열로 된 XQuery 결과를 보여 주는 예입니다.
{"testXQueryResponse":
    [
        "Basic Snow Shovel, ",
        "A Deluxe Snow Shovel ...",
        ...
    ]
}
조작 정의 시 쿼리의 단일 행만 페치 체크 박스를 선택한 경우 XQuery 결과의 첫 번째 행에 대한 JSON 오브젝트가 JSON 배열 대신 리턴됩니다. 다음은 XQuery 결과의 첫 번째 문자열 값이 JSON 오브젝트로 리턴되는 예를 보여 주는 코드입니다.
{"testXQueryResponse":
    "Basic Snow Shovel, "
}

피드백