Шаг 4. Добавьте политику

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Теперь, когда вы изменили целевую конечную точку , вы готовы добавить политику к своему прокси-серверу.

Политика — это компонент Edge, который можно прикрепить к различным точкам потока сообщений через ваши API-прокси. Политики могут преобразовывать форматы сообщений, обеспечивать контроль доступа, вызывать удаленные сервисы, авторизовывать пользователей, анализировать содержимое сообщений на предмет потенциальных угроз и многое другое.

В этом руководстве вы добавите политику XMLtoJSON к своему прокси-серверу. Эта политика преобразует полезную нагрузку XML-сообщения в JSON. Она также изменяет заголовок Content-Type в ответе.

Чтобы добавить политику преобразования XML в JSON в ваш прокси-сервер:

  1. Откройте интерфейс Edge в браузере и войдите в систему.
  2. В главном окне нажмите «API-прокси» и выберите прокси. В этом примере выберите прокси, который вы создали на шаге 1: «Создание API-прокси» .
  3. Нажмите вкладку «Разработка» :

    В браузере Edge отображается редактор API-прокси.

  4. В панели навигатора щелкните Proxy Endpoints > default > 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>
  5. Чтобы добавить политику к вашему прокси-серверу, нажмите кнопку «+ Шаг» в окне предварительного просмотра ответа (нижняя часть редактора потока):

    В диалоговом окне «Добавить» Edge отображает список политик, отсортированных по категориям, которые можно добавить в свой поток:

  6. Прокрутите вниз и выберите политику преобразования XML в JSON в категории «Посредничество».
  7. Оставьте имена по умолчанию и нажмите «Добавить» .

    Edge прикрепляет новую политику к предварительному потоку ответа:

    Обратите внимание, что при нажатии кнопки «Добавить » Edge выполняет следующие действия:

    • Добавляет новую политику в раздел «Политики» на панели «Навигатор» .
    • Добавляет политику преобразования XML в JSON на панель «Поток» .
    • Отображает XML-файл конфигурации политики в панели «Код» .
  8. Нажмите «Сохранить» , чтобы сохранить текущую версию с внесенными изменениями.

Попробуйте! В окне терминала выполните следующую команду curl :

curl https://org_name-test.apigee.net/getstarted

Где:

В качестве альтернативы вы можете открыть тот же URL-адрес в браузере.

Вы должны получить следующий ответ:

{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

Если текст ответа выглядит иначе, проверьте следующее:

  1. Ваша целевая конечная точка — "https://mocktarget.apigee.net/xml", как описано в шаге 3: Измените целевую конечную точку :
    • Если в ответ приходит сообщение "Hello, Guest!", то необходимо добавить "/xml" в конец адреса целевой точки.
    • Если вы получаете ошибку 404, убедитесь, что вы обращаетесь к "apigee.net", а не к "apigee.com".
  2. Развернута последняя версия вашего прокси-сервера. Попробуйте повторно развернуть ваш 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"
  }
}

Следующий шаг

Углубиться