2016-01-12 2 views
0

Я использую встроенную функцию прототипа javascript в диспетчере WSO2 API, и я пытаюсь установить разные статусы HTTP-ответа. Это возможно? Если да, то как это делается?Прототип API-менеджера API WSO2 API Статус ответа HTTP

До сих пор я пытался установить свойство HTTP_SC, но это, похоже, не имеет никакого эффекта. mc.setProperty('HTTP_SC', "404");

ответ

0

я имел такое же требование и после того, как много исследуя под капотом был в состоянии найти приемлемое решение.

Причина установки свойства:

mc.setProperty('HTTP_SC', "404"); 

не работает в том, что имущество должно быть установлено в объеме axis2 (как сказал Abimaran). mc.setProperty не устанавливает его в этой области. Кроме того, объект MessageContext не предоставляет способ установки области.

Действие «Развернуть как прототип» фактически создает файл определения API, объединяя указанный встроенный скрипт в шаблон скорости и сохраняя полученное определение API в файл.

  • Шаблон: ./repository/resources/api_templates/prototype_template.xml
  • Выход местоположение: хранилище/разворачивание/сервер/синапс-конфиги/по умолчанию/API/

Выходной файл будет иметь имя в формате:

поставщик - API Name-vVERSION.xml

где появляется поставщик быть имя пользователя из API создателя.

Что я сделал добавить фильтр к шаблону:

<filter source="boolean(get-property('HTTP_SC'))" regex="false"> 
    <then> 
     <property name="HTTP_SC" value="200" scope="axis2"/> 
    </then> 
    <else> 
     <property name="HTTP_SC" expression="get-property('HTTP_SC')" scope="axis2"/> 
    </else> 
</filter> 

Я добавил его сразу после аналогичного блока (для обработки CONTENT_TYPE) в начале элемента inSequence.

0

Вам необходимо добавить следующие свойства перед тем <send/> медиатора

<header name="To" action="remove"/> 
<property name="RESPONSE" value="true"/> 
<property name="HTTP_SC" value="403" scope="axis2"/>