이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Apigee Edge 문서 보기
이제 대상 엔드포인트를 변경했으므로 정책을 프록시에 추가할 수 있습니다.
정책은 API 프록시를 통해 메시지 흐름의 여러 지점에 연결할 수 있는 Apigee 구성요소입니다. 정책은 메시지 형식 변환, 액세스 제어 적용, 원격 서비스 호출, 사용자 승인, 메시지 콘텐츠에서 잠재적 위협 검사 이상의 작업을 수행할 수 있습니다.
이 튜토리얼에서는 프록시에 XMLtoJSON 정책을 추가합니다. 이 정책은 XML 메시지의 페이로드를 JSON으로 변환합니다. 응답의 Content-Type
헤더도 변경합니다.
정책을 프록시의 흐름에 연결할 수 있습니다. 흐름은 정책의 실행 방법을 제어합니다. 이 예시에서는 PreFlow라고 부르는 특별한 흐름에 정책을 추가합니다. PreFlow에서 정책은 프록시의 다른 정책보다 먼저 실행됩니다. 이 예시에서 설명하는 흐름을 자세히 이해할 필요는 없지만 흐름으로 API 프록시 제어에서 이에 대해 자세히 알아볼 수 있습니다.
새 프록시 편집기
프록시에 XMLtoJSON 정책 추가는 2단계로 수행됩니다.
정책 인스턴스 만들기
정책을 사용하려면 먼저 다음과 같이 정책 템플릿에서 정책의 새 인스턴스를 만들어야 합니다.
Cloud 콘솔에서 Apigee UI를 사용하는 경우: 프록시 개발 > API 프록시를 선택합니다.
기본 Apigee UI를 사용하는 경우: 개발 > API 프록시를 선택하고 프록시 창에서 프록시의 환경을 선택합니다.
- 프록시 목록에서 정책을 추가할 프록시를 선택합니다.
개발 탭을 클릭합니다.
- 왼쪽 창의 정책 폴더 옆에 있는 + 버튼을 클릭합니다.
- 정책 만들기 대화상자에서 표준 정책을 선택하여 정책 유형별로 사용 가능한 정책 목록을 필터링합니다.
- 정책 유형 선택 텍스트 상자에서 미디에이션으로 아래로 스크롤하고 XML To JSON을 선택합니다.
선택적으로 정책의 이름 및 표시 이름을 변경할 수 있습니다. 기본적으로 Apigee는 정책 이름에 짧은 프리픽스(이 경우 X2J-)를 제공합니다. 프리픽스 다음에 대시로 구분된 일련의 단어를 추가할 수 있습니다. 이름 지정 규칙을 참조하세요.
완료되면 만들기를 클릭하여 정책을 만듭니다.
개발 보기의 오른쪽 창에 XML To JSON 정책이 표시됩니다.
창의 아래쪽에 정책의 XML 코드가 표시됩니다.
정책에 대해 자세히 알아보려면 정책 이름 옆에서 정보 아이콘()을 선택하고 XML To JSON 정책을 클릭합니다. 그러면 정책의 참조 페이지가 표시됩니다.
Gemini Code Assist를 사용하여 정책 안내 검토
Gemini Code Assist 부가기능이 있는 경우 정책 요소를 강조 표시하여 해당 요소와 사용 방법을 확인할 수 있습니다. 자세한 내용은 정책과 함께 Gemini Code Assist 코드 설명 사용을 참조하세요.
정책 이름 변경
정책 이름을 변경하는 방법은 다음과 같습니다.
- 왼쪽 창의 정책에서 정책을 선택합니다.
- 정책의 XML 코드에 있는 <DisplayName> 요소에서 정책 이름의 약어 뒤에 change-xml-to-json과 같은 정책을 설명하는 문구를 추가합니다.
그러면 정책 아래에 표시된 정책 이름이 자동으로 업데이트됩니다.
이름 지정 규칙을 참조하세요.
PreFlow에서 단계에 정책 연결
이제 XML To JSON 정책을 만들었으므로 PreFlow에서 단계에 이를 연결할 수 있습니다.
- 왼쪽 창에서 프록시 엔드포인트 > 기본값 > PreFlow를 선택합니다.
참고: 모든 요소를 보려면 오른쪽 창에서 비주얼 편집기를 확장해야 할 수도 있습니다. 이렇게 하려면 비주얼 편집기와 텍스트 편집기 사이의 구분선을 클릭하고 약간 아래로 드래그합니다.
- 비주얼 편집기 오른쪽 하단의 PreFlow 창에서 PreFlow 옆에 있는 + 버튼을 클릭합니다.
- 정책 단계 추가 대화상자에서 X2J-change-xml-to-json 정책을 선택합니다.
추가를 클릭하여 정책을 연결합니다.
이제 X2J-change-xml-to-json 정책이 응답 창에 표시됩니다.
- 저장을 클릭하여 변경사항과 함께 현재 수정 버전을 저장합니다.
- 버전에 변경사항을 배포하려면 배포를 클릭하고 API 프록시 배포의 안내를 따릅니다.
기본 프록시 편집기
XMLtoJSON 정책을 프록시에 추가하려면 다음 안내를 따르세요.
- 브라우저에서 Apigee UI를 열고 로그인합니다.
- 기본 창에서 API 프록시를 클릭하고 프록시를 선택합니다. 이 예시에서는 2단계: API 프록시 만들기에서 만든 프록시를 선택합니다.
개발 탭을 클릭합니다.
Apigee에서 API 프록시 편집기를 표시합니다.
탐색기 창에서 프록시 엔드포인트 > 기본 > PreFlow를 클릭합니다.
Apigee에서 흐름 편집기를 표시합니다.
또한 Apigee에서 코드 창에 기본 프록시 엔드포인트 구성을 표시합니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ProxyEndpoint name="default"> <Description/> <FaultRules/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> <Flows/> <HTTPProxyConnection> <BasePath>/myproxy</BasePath> <Properties/> <VirtualHost>default</VirtualHost> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection> <RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule> </ProxyEndpoint>
- 정책을 프록시에 추가하려면 응답 PreFlow(흐름 편집기의 하단)에서 + 단계 버튼을 클릭합니다.
Apigee에서 추가 대화상자에 흐름에 추가할 수 있는 정책의 분류 목록을 표시합니다.
- 아래로 스크롤하고 미디에이션 카테고리에서 XMLtoJSON 정책을 선택합니다.
기본 이름을 그대로 두고 추가를 클릭합니다.
Apigee는 새 정책을 응답의 PreFlow에 연결합니다.
추가를 클릭하면 Apigee에서 다음을 수행합니다.
- 탐색기 창의 정책에서 새 정책을 추가합니다.
- 흐름 창에 XMLtoJSON 정책을 추가합니다.
- 코드 창에 정책 구성 XML을 표시합니다.
- 저장을 클릭하여 변경사항과 함께 현재 수정 버전을 저장합니다.
- 변경사항을 배포하려면 개요 탭을 클릭하고 배포 버튼을 클릭합니다.
새 정책 테스트
새 정책을 테스트하려면 터미널 창에서 다음 curl
명령어를 실행합니다.
curl https://YOUR_ENV_GROUP_HOSTNAME/myproxy
여기서 YOUR ENV_GROUP_HOSTNAME
은 환경 그룹 호스트 이름입니다. 환경 그룹 호스트 이름 찾기를 참조하세요.
자세한 내용은 API 프록시 호출을 참조하세요.
또는 브라우저에서 동일한 URL을 열 수 있습니다.
다음과 같은 응답이 표시됩니다.
{ "root": { "city": "San Jose", "firstName": "John", "lastName": "Doe", "state": "CA" } }
응답 본문이 다음과 같지 않으면 다음을 확인합니다.
- 대상 엔드포인트는 4단계: 대상 엔드포인트 변경의 설명대로
https://mocktarget.apigee.net/xml
입니다.- 응답으로
Hello, Guest!
가 표시되면/xml
을 대상 엔드포인트 끝에 추가해야 합니다. 404
가 표시되면apigee.com
이 아닌apigee.net
에 액세스하고 있는지 확인합니다.
- 응답으로
- 프록시의 최신 버전이 배포됩니다. API 프록시 배포 및 API 프록시 배포 취소에 설명된 대로 API 프록시를 다시 배포해 봅니다.
HTTP 요청과 응답 헤더를 확인하려면 -vs
옵션을 사용하여 curl
에서 세부정보 수준을 사용 설정합니다(v
은 응답 세부정보를 표시하지만 s
는 일부 중요하지 않은 세부정보를 표시하지 않음). 다음 예시에서는 프록시 이름이 myproxy
라고 가정합니다.
curl -vs https://YOUR_ENV_GROUP_HOSTNAME/myproxy | python -m json.tool
다음과 같은 응답이 표시됩니다. 응답의 Content-Type
헤더는 application/json
입니다.
XMLtoJSON 정책은 응답을 다시 보내기 전에 헤더를 변경합니다.
* Trying 10.20.30.40... * TCP_NODELAY set * Connected to apitest.acme.com (10.20.30.40) port 443 (#0) ... > GET /myproxy HTTP/1.1 > Host: apitest.acme.com > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 200 OK < Date: Fri, 25 May 2018 16:20:00 GMT < Content-Type: application/json;charset=UTF-8 < Content-Length: 77 < Connection: keep-alive < X-Powered-By: Apigee < Access-Control-Allow-Origin: * ... { [77 bytes data] { "root": { "city": "San Jose", "firstName": "John", "lastName": "Doe", "state": "CA" } }