메시지 출력 형식

새 웹 서비스 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, "
}

피드백