WSO2 APIM Пользовательские последовательности для неопубликованных API / Настройка переменной - PullRequest
0 голосов
/ 31 мая 2018

Мы определили пользовательскую последовательность по умолчанию для управления различными шлюзами, как описано здесь

Мы установили последовательность, как описано в документе Создание глобального соединения

Последовательность читает только 2 переменные из окружения и использует для построения URL-адреса конечной точки.Это код:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="WSO2AM--Ext--In">
        <property name="uri.var.host" expression="get-property('system','host')" />
        <property name="uri.var.port" expression="get-property('system','port')" />
</sequence>

Это нормально работает с Опубликованным API, но если мы опустим API до прототипа (для использования напрямую без подписки), он не будет работать.

Мы попытались:

  • Чтобы установить его в качестве политики передачи сообщений на уровне API

  • Установка параметра в /repository/resources/api_templates/prototype_template.xml В последовательности

Ошибка при тестировании отчетов пустого имени хоста (когда он пытается прочитать переменную, и она пуста)

Знаете ли вы, как установить переменные среды в прототипированной среде

1 Ответ

0 голосов
/ 02 июня 2018

Когда API развернут в «Конечной точке прототипа», для создания реализации API используется speed_template.xml.

Этот шаблон генерирует другой код для PROTOTYPE и ОПУБЛИКОВАННЫХ API.

Я вынужден включить APIManagerExtensionHandler (который является обработчиком, обрабатывающим последовательность пользовательских расширений), добавив следующее в шаблон скорости (послецикл добавления обработчика).

patch --forward $WSO2_PATH/$1/repository/resources/api_templates/velocity_template.xml <<EOF
*** velocity_template.xml   2018-06-02 11:04:42.474476581 +0200
--- velocity_template.xml.patched   2018-06-02 11:07:28.495395384 +0200
***************
*** 361,366 ****
--- 361,369 ----
      #end
  </handler>
  #end
+ #if(\$apiStatus == 'PROTOTYPED')
+ <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler"/>
+ #end
  </handlers>
          #end
          #end
EOF
...