Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Теперь, когда вы изменили целевую конечную точку , вы готовы добавить политику к своему прокси.
Политика — это компонент Edge, который вы можете прикрепить к различным точкам потока сообщений через прокси-серверы API. Политики могут преобразовывать форматы сообщений, обеспечивать контроль доступа, вызывать удаленные службы, авторизовать пользователей, проверять содержимое сообщений на наличие потенциальных угроз и делать многое другое.
В этом руководстве вы добавите политику XMLtoJSON в свой прокси. Эта политика преобразует полезные данные XML-сообщения в JSON. Он также изменяет заголовок Content-Type
ответа.
Чтобы добавить политику XML в JSON на свой прокси:
- Откройте пользовательский интерфейс Edge в браузере и войдите в систему.
- Нажмите «Прокси API» в главном окне и выберите прокси. В этом примере выберите прокси-сервер, созданный на шаге 1. Создание прокси-сервера API .
Откройте вкладку «Разработка» :
Edge отображает редактор прокси-сервера API.
На панели «Навигатор» щелкните Конечные точки прокси > по умолчанию > PreFlow :
Edge отображает редактор Flow:
Кроме того, Edge отображает конфигурацию конечной точки прокси-сервера по умолчанию на панели «Код» :
<?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>/getstarted</BasePath> <Properties/> <VirtualHost>default</VirtualHost> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection> <RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule> </ProxyEndpoint>
- Чтобы добавить политику к вашему прокси, нажмите кнопку + Шаг в ответе PreFlow (нижняя половина редактора Flow):
Edge отображает категоризованный список политик в диалоговом окне «Добавить» , который вы можете добавить в свой поток:
- Прокрутите вниз и выберите политику XML в JSON в категории «Медиация».
Оставьте имена по умолчанию и нажмите «Добавить» .
Edge присоединяет новую политику к PreFlow ответа:
Обратите внимание, что когда вы нажимаете «Добавить» , Edge делает следующее:
- Добавляет новую политику в раздел «Политики» на панели «Навигатор» .
- Добавляет политику XML в JSON на панели «Поток» .
- Отображает XML-файл конфигурации политики на панели «Код» .
- Нажмите «Сохранить» , чтобы сохранить текущую версию с внесенными изменениями.
Теперь попробуйте! В окне терминала выполните следующую команду curl
:
curl https://org_name-test.apigee.net/getstarted
Где:
- org_name — это название организации, которое Apigee назначил вам при создании учетной записи Apigee .
-
-test
– это окружающая среда. Вы развернули новый прокси-сервер в «тестовой» среде на этапе 1. Создание прокси-сервера API . -
/getstarted
— это базовый путь прокси.
Альтернативно вы можете открыть тот же URL-адрес в браузере.
Вы должны получить следующий ответ:
{ "root": { "city": "San Jose", "firstName": "John", "lastName": "Doe", "state": "CA" } }
Если тело ответа выглядит не так, проверьте следующее:
- Ваша целевая конечная точка — «https://mocktarget.apigee.net/xml», как описано в шаге 3. Измените целевую конечную точку :
- Если вы получите сообщение «Привет, Гость!» в качестве ответа вам нужно добавить «/xml» в конец целевой конечной точки.
- Если вы получили ошибку 404, убедитесь, что вы заходите на «apigee.net», а не на «apigee.com».
- Развернута последняя версия вашего прокси. Попробуйте повторно развернуть прокси-сервер API, как описано в разделе «Развертывание и отмена прокси-сервера API» .
Чтобы просмотреть заголовки HTTP-запроса и ответа, включите подробную информацию в curl
с опцией -vs
( v
делает ответ подробным, но s
подавляет некоторые менее интересные детали). Например:
curl -vs https://ahamilton-eval-test.apigee.net/getstarted | python -m json.tool
Вы должны получить ответ, который выглядит следующим образом. Обратите внимание, что заголовок Content-Type
в ответе — «application/json». Политика XML в JSON изменяет заголовок перед отправкой ответа обратно.
* Trying 10.20.30.40... * TCP_NODELAY set * Connected to ahamilton-eval-test.apigee.net (10.20.30.40) port 443 (#0) ... > GET /getstarted HTTP/1.1 > Host: ahamilton-eval-test.apigee.net > 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" } }