사용자 인터페이스에서 맵 정책 구성
API Designer 의 어셈블 보기는 맵 정책의 입력 및 출력 간 관계를 시각적으로 표시합니다.
프로시저
- 어셈블 보기의 캔버스에서 맵 정책을 클릭하십시오.특성 시트가 열립니다.
- ‘입력’ 열에 있는 ‘입력
편집’ 아이콘을 클릭하세요. - 입력 변수를 추가하십시오.
- +입력을 클릭하십시오.
- 입력에 대한 컨텍스트 변수 필드에 어셈블리의 컨텍스트에서 입력 변수의 위치를 제공하십시오. 컨텍스트 변수 목록은 API Connect 의 ‘컨텍스트 변수’ 항목을 참조하십시오.
- 입력의 이름 필드에 맵 정책 내에서만 사용할 입력의 이름을 제공하십시오.참고:
제공하는 이름이 컨텍스트 변수 필드의 값과 일치하지 않는지 확인해야 합니다. 그렇지 않으면 예기치 못한 상황이 발생할 수 있습니다.
- 선택 사항: 해당 콘텐츠 유형 필드에 입력할 데이터의 유형을 지정하십시오. 없음을 선택하면 컨텐츠 유형은 JSON으로 처리됩니다.
- 입력에 대한 정의 필드에 변수의 유형을 제공하십시오. 유형은 표준 유형 세트 중 하나거나 API에 대해 작성한 정의가 될 수 있으며 그렇지 않은 경우 인라인 스키마를 선택하여 다음 옵션 중 하나로 스키마를 제공할 수 있습니다.
- YAML
- JSON
- 샘플 JSON으로부터 생성
- 샘플 XML로부터 생성
오브젝트 또는 배열을 선택하면 완료를 클릭하고 특성 시트의 기본 보기로 돌아간 후 사용자 인터페이스를 통해 스키마를 작성할 수 있습니다.
- 선택 사항: 변수를 제거하려면 해당 ‘입력 제거’ 아이콘을 클릭하세요
. - 모든 입력 변수를 추가한 후 완료를 클릭하십시오.
- ‘출력’ 열에 있는 ‘출력
편집’ 아이콘을 클릭하세요. - 출력 변수를 추가하십시오.
- +출력을 클릭하십시오.
- 출력의 컨텍스트 변수 필드에 출력 위치를 제공하십시오. 이 위치는 새 컨텍스트 또는 어셈블리 중에 이미 구축된 컨텍스트일 수 있습니다. 컨텍스트 변수 목록은 API Connect 의 ‘컨텍스트 변수’ 항목을 참조하십시오.
- 출력의 이름 필드에 맵 정책 내에서 사용할 변수의 이름과 출력 시 해당 컨텍스트에 포함되는 경우 변수의 이름을 제공하십시오.참고:
제공하는 이름이 컨텍스트 변수 필드의 값과 일치하지 않는지 확인해야 합니다. 그렇지 않으면 예기치 못한 상황이 발생할 수 있습니다.
- 선택 사항: 해당 콘텐츠 유형 필드에 입력할 데이터의 유형을 지정하십시오. 없음을 선택하면 컨텐츠 유형은 JSON으로 처리됩니다.
- 출력의 정의 필드에 변수의 유형을 제공하십시오. 유형은 표준 유형 세트 중 하나거나 API에 대해 작성한 정의가 될 수 있으며 그렇지 않은 경우 인라인 스키마를 선택하여 다음 옵션 중 하나로 스키마를 제공할 수 있습니다.
- YAML
- JSON
- 샘플 JSON으로부터 생성
- 샘플 XML로부터 생성
오브젝트 또는 배열을 선택하면 완료를 클릭하고 특성 시트의 기본 보기로 돌아간 후 사용자 인터페이스를 통해 스키마를 작성할 수 있습니다.
- 선택 사항: 변수를 제거하려면 해당 ‘출력 제거’ 아이콘을 클릭하세요
. - 모든 출력 변수를 추가한 후 완료를 클릭하십시오.
- 선택 사항: 입력 또는 출력의 유형으로 ‘객체’ 또는 ‘배열’을 선택한 경우, 다음 단계를 수행하여 사용자 인터페이스를 통해 인라인 스키마 정의를 생성하십시오.
- 배열의 경우 항목 추가를 클릭하십시오. 항목의 유형을 지정한 다음 ‘추가’ 아이콘을 클릭하세요
. - 오브젝트의 경우 특성 추가를 클릭하십시오. 속성의 이름과 유형을 입력한 다음 ‘추가’ 아이콘을 클릭하세요
.
이러한 방식으로 생성된 객체와 배열에는 계속해서 항목과 속성을 추가할 수 있으며, 이 항목과 속성 자체도 객체나 배열일 수 있습니다. - 배열의 경우 항목 추가를 클릭하십시오. 항목의 유형을 지정한 다음 ‘추가’ 아이콘을 클릭하세요
- 입력 변수를 출력 변수에 연결하려면, 입력 변수 바로 앞에
있는 원을 클릭한 후 출력 변수 바로 앞에 있는 원을
클릭하십시오.두 변수를 함께 링크하는 초록색 선이 표시됩니다. 여러 입력을 단일 출력에 연결할 수 있고 단일 입력을 여러 출력에 연결할 수 있습니다.
- 출력을 구성하려면, 해당 출력에 연결된 입력 변수가 있든 없든, 입력 변수의 원을 먼저 클릭하지 말고 출력 변수 바로 앞에 있는 원을 클릭하십시오.맵핑 구성 창이 열립니다.
- 선택 사항: 창의 해당 다음에서 매핑됨 섹션에서, 현재 편집 중인 출력에 어떤 입력들이 매핑되어 있는지 확인할 수 있습니다. 입력을 삭제하려면 입력 항목 옆에 있는 ‘입력
삭제’ 아이콘을 클릭하세요.출력이 배열의 일부이면 추가 구성 옵션을 사용할 수 있습니다. 배열 또는 다차원 배열의 경우 배열의 레벨은 맵핑의 입력 쪽에서 배열을 반복하여 작성할 수 있습니다. 사용자 배열의 각 레벨에서 반복할 입력 쪽의 배열을 선택하십시오. 값 필드에서 $(this)를 사용하여 배열 내 이름 지정되지 않은 배열의 요소를 참조할 수 있습니다.
- 선택 사항: ‘값’ 필드에서 ‘ GatewayScript ’을 사용하여 입력을 어떻게 변환하여 출력을 생성할지 구성합니다.
- 선택 사항: ‘기본값’ 필드에 입력값이 제공되지 않을 때 출력에 적용될 고정 값이나 인라인 변수 참조를 입력합니다. 인라인 변수 참조에 대한 자세한 내용은 ‘인라인 참조’를 참조하십시오.
- 선택 사항: 출력으로 연결된 모든 매핑을 삭제하려면 ‘삭제’를 클릭하세요.
- 출력을 구성했으면 확인을 클릭하십시오.
- 선택 사항: 지도 열에 있는 설정 아이콘을 클릭합니다.
- 선택 사항: 지도 정책의 제목 과 설명을 입력하세요.
- 맵 정책의 XML 출력을 제어하려면 필요에 따라 다음 옵션을 선택하십시오.
- 비어 있음 포함
- 이 선택란을 선택하면(기본 옵션) 비어 있는 XML 요소가 맵 정책의 출력에 포함됩니다. 비어 있는 XML 요소를 맵 정책의 출력에 포함시키지 않으려면 이 선택란을 선택 취소하십시오.
- 네임스페이스 상속
- 이 선택란을 선택하면(기본 옵션) 상위 요소에서 XML 네임스페이스가 상속됩니다. 맵 정책에서 명시적인 네임스페이스를 사용하도록 하려면 이 선택란을 선택 취소하십시오.
- 네임스페이스 삽입
- 이 선택란을 선택하면(기본 옵션) XML 네임스페이스를 처음 사용된 문서에 삽입합니다. 루트 요소에서 모든 네임스페이스를 정의하려면 선택란을 선택 취소하십시오.
XML 입력 데이터 유형 해석- 이 선택란을 선택하면 스키마가 부울 또는 숫자 유형으로 구성된 XML 요소가 해당 데이터 유형으로 변환됩니다. 모든 XML 요소 값이 문자열로 리턴되도록 하려면 이 선택란을 선택 취소하십시오(기본 옵션).
XML 출력 구문 분석- 선택란을 선택한 경우 맵 정책은 구문 분석된 XML 문서로서 XML 출력을
message.body에 작성합니다. 기본적으로, XML은 XML 문자열로 출력됩니다. 다른 변수에 대한 XML 출력은 항상 XML 문자열로 작성됩니다.
참고: 이러한 옵션은 XML 출력에만 영향을 주며 JSON 데이터에는 영향을 주지 않습니다.
‘빈 XML 요소 처리’ 목록에서 다음 옵션 중 하나를 선택하여 맵 정책이 빈 XML 요소의 출력을 처리하는 방식을 제어할 수 있습니다:- 문자열(기본 옵션): 비어 있는 XML 요소가 비어 있는 문자열로 처리됩니다.
- 널: 비어 있는 XML 요소가 널값으로 처리됩니다.
- 없음: 데이터가 무시됩니다.
String Badgerfish : 빈 XML 요소의 값은 빈 문자열로 간주됩니다. 비어 있는 문자열 값은 JSON badgerfish 값 특성에 배치됩니다.
Null Badgerfish : 빈 XML 요소의 값은 null로 간주됩니다. 널 값은 JSON badgerfish 값 특성에 배치됩니다. 널 값 허용 옵션이 선택되지 않으면 JSON 출력 특성에 대한 이 요소의 맵핑은 발생하지 않습니다.
필요에 따라 다음의 일반 구성 옵션을 선택하십시오:- 첫 번째 배열 요소만 사용
- 이 선택란이 선택된 경우 입력 순회에서 배열을 만나면 첫 번째 요소만 사용됩니다. 맵 정책에서 모든 배열 요소를 사용하도록 하려면 이 선택란을 선택 취소하십시오(기본 옵션).
- 변수 참조 API Connect 해결
- 이 확인란의 선택이 해제된 경우(기본 설정), 맵 정책은 맵 정책 내의 변수 참조를 API Connect 무시합니다. 맵 특성에서 찾은 API Connect 변수 참조를 해석하려는 경우 선택란을 선택하십시오.
- 널값 허용
- 이 선택란을 선택하면(기본 옵션) 널값이 있는 입력 특성 값이 출력 문서에 맵핑됩니다. 맵 정책에서 널 입력 값을 무시하도록 하려면 이 선택란을 선택 취소하십시오(기본 옵션).
- 스키마 정의 최적화
- 이 선택란을 선택하면 최적화된 방식으로 복합 스키마 유형 평가가 순환 유형 참조를 처리합니다. 표준 방식으로 이러한 스키마 유형을 평가하려면 이 선택란을 선택 취소하십시오(기본 옵션).
JSON 사후 처리 사용- 이 선택란이 선택된 경우 맵핑된 JSON 출력의 사후 처리가 사용으로 설정됩니다. JSON 출력의 사후 처리가 출력 스키마를 사용하여 특성 값이 스키마에 정의된 것과 동일한 데이터 유형인지 확인합니다. 또한 XML 입력의 오브젝트 맵핑으로 인해 Badgerfish JSON 구문이 있는 출력 특성 값을 정규화합니다. 선택란은 기본적으로 선택 취소된 상태이며, 이는 맵핑된 JSON 출력의 사후 처리가 없음을 의미합니다.
실패한 맵핑에 대한 빈 상위 오브젝트 작성
입력이 없고 기본 맵핑이 구성되지 않았으므로 맵핑이 실패하면 이 설정을 사용하여
동작을 제어합니다.기본 동작은 출력을 변경하지 않는 것이지만 이 선택란을 선택하면 대상 맵핑의 상위에 대해 비어 있는 오브젝트가 작성되어 IBM API Management Version 4.0의 동작을 에뮬레이트합니다.
- 예
- 맵 정책이
output.a.b.c에 대한 맵핑을 정의합니다.입력 데이터가 있으면 출력은 다음과 같습니다.{ "a": { "b": { "c": "inputvalue" } } }입력 데이터가 없고 실패한 맵핑에 대한 빈 상위 오브젝트 작성 옵션을 선택한 경우 출력은 다음과 같습니다.
특성{ "a": { "b": { } } }a및b가 작성되지만,b값은 빈 오브젝트입니다.선택란은 기본적으로 선택되지 않습니다.
- 배열 오브젝트 및 맵핑된 선택적 오브젝트의 필수 하위 특성 작성
- 이 선택란이 선택되면 다음과 같은 특정 경우에 입력 데이터가 없거나 맵핑되지 않은 필수 특성에 대한 기본값이 출력에 생성됩니다.
- 배열이 하나 이상의 필수 특성이 포함된 오브젝트로 구성되어 있습니다.
- 선택적인 오브젝트에는 필수인 하나 이상의 하위 특성이 있습니다.
기본적으로 이러한 필수 특성은 출력에 없습니다. 이 옵션을 선택하는 경우 이러한 필수 특성이 출력에 존재합니다. 출력 스키마가 출력 특성에 대한default특성을 정의하면 지정된 기본값이 사용됩니다. 그렇지 않으면 다음과 같이 데이터 유형에 따라 기본값이 지정됩니다.- 문자열: 비어 있는 문자열("")
- 숫자: 0
- 부울: false
- 오브젝트: 비어 있는 오브젝트
- 배열: 비어 있는 배열
- 예제 1
- 입력 데이터에 다음과 같은 오브젝트 배열이 있습니다.
[{“a”: “value1”}, {“a”: “value2", "b": “value3”}]출력 스키마가 출력 오브젝트에 두 개의 특성
a및b가 있는 것으로 정의하며, 이 중에서b는 필수입니다. 맵 정책이 다음 맵핑을 정의합니다.input.array.a-output.array.ainput.array.b-output.array.b
선택란이 선택되고
b가 맵핑되지 않았거나 여기에 입력 데이터가 없는 경우b기본값인 비어 있는 문자열이 지정되며 출력은 다음과 같습니다.[{“a”: “value1", "b": ""}, {"a": "value2", "b": "value3"}] - 예제 2
- 출력 스키마가 다음 구조를 정의합니다.
{"a" : {"b" : {"c" : "value1", "d" : "value2"} } }b특성은 선택사항이지만b내의d는 필수입니다.맵 정책이
output.a.b.c에 대한 맵핑을 정의합니다.선택란이 선택되고
d가 맵핑되지 않은 경우d에 기본값인 비어 있는 문자열이 지정되며 출력은 다음과 같습니다.{"a" : {"b" : {"c" : "value1", "d" : ""} } }
선택란이 선택되지 않으면 이러한 필수 특성이 해당 기본값으로 출력에 작성되지 않습니다.
‘빈 JSON 배열 처리’ 목록에서 다음 옵션 중 하나를 선택하여 맵 정책이 빈 배열의 출력을 처리하는 방식을 제어할 수 있습니다:- 모두(기본 옵션): 비어 있는 하위 배열을 포함하여 비어 있는 배열을 모두 출력합니다.
- parent: 현재 특성의 빈 어레이 값만 출력합니다. 이 특성의 하위 맵 조치는 시도되지 않습니다.
- none: 빈 출력 어레이 값이 생성되지 않도록 합니다.
- 입력 데이터 로그 메시지의 심각도 레벨 목록에서 다음 옵션 중 하나를 선택하여 입력 데이터와 관련된 로그 메시지의 심각도 레벨을 지정하십시오.
- 오류
- 경고
- 정보
‘스키마 정의 순환 참조 제한’ 필드를, 순환 스키마 정의의 허용되는 최대 반복 횟수를 지정하는 정수 값으로 설정합니다. 기본값은 1이며, 이는 순환 스키마 정의를 따르지 않음을 의미합니다. 가능한 최대값은 5입니다.- 완료되면 저장 을 클릭하십시오.