Относительно <Results>Элемент / свойство / тег / функция в DataPower xslt - PullRequest
0 голосов
/ 03 сентября 2018

Это может быть несколько наивно, но я совершенно поражен вопросом

В DataPower есть определенный элемент <result>, и при вызове через xslt у нас есть несколько следующий формат (который я обнаружил на некоторых форумах) -

<results mode="require-all" multiple-outputs="true" transactional="true" retry-interval="100" asynchronous="false">
  <url input="var://the_request_SOAP_Format"asynchronous="true">https://XXXXXXX</url>

теперь в этом (ввод URL) находится запрос, который нужно отправить, и (https://XXXXXXX) - это указанный бэкэнд, куда его нужно отправить

Теперь у меня есть несколько заголовков аутентификации (httpHeaders), которые мне нужно отправить, без которых я получу ошибку авторизации

    <xsl:variable name="httpHeaders">
      <header name="Content-Type">application/json</header>
      <header name="Authorization">
        <xsl:value-of select="concat('Bearer ',$some_sessionID)"/>
      </header>
    </xsl:variable>

Можно ли добавить эти 'httpHeaders' в элементе режима результата / свойстве Tab

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Метод result-doc вызова бэкэндов довольно мощный, но я не уверен по вашему вопросу, полностью ли вы его понимаете. Атрибут url / @ input должен быть контекстом DataPower:

<url input="var://context/mycontext" ...

Чтобы связать заголовки с этим контекстом, вы должны сделать что-то подобное для каждого нужного заголовка:

<dp:set-variable
  name="'var://context/mycontext/_extension/header/Content-Type'"
  value="'application/json'"/>

(Это будет сделано в вашем коде XSLT, отдельно от создания документа «Results», но перед тем, как вы будете использовать Действие Results для выполнения.)

0 голосов
/ 04 сентября 2018

Я не совсем уверен, чего вы пытаетесь достичь, но добавляю заголовки http для ответа (обратная сторона), с которым вы делаете:

<dp:set-http-response-header name="'HeaderName'" value="$httpHeaders"/>

или

<dp:set-http-request-header name="'HeaderName'" value="$httpHeaders"/>

<results> - это набор данных, которые Политика обработки будет выводить в качестве полезной нагрузки для запроса / ответа и не будет содержать заголовков. Вы не должны пытаться изменить объект <results>!

...