Как wso2 api manager добавляет пользовательский заголовок к запросу, передаваемому на серверную часть

#api #wso2 #wso2-am

#API #wso2 #wso2-api-manager

Вопрос:

Я создал API в WSO2 API Manager и хочу добавить пользовательский заголовок, когда API gateway получит запрос, и установить пользовательский заголовок для API и передать его на серверную часть. например, когда API gateway получает запрос для каждого запроса этого типа, добавляет «My-Header: xxxxx» к запросу и передает его на серверную часть.

Как это возможно?

Ответ №1:

Вы можете достичь этого с помощью различных методов, как указано ниже.

  1. Портал издателя: Если вы хотите добавить пользовательский заголовок вместе с самим запросом, вы можете добавить его следующим образом на портале издателя. введите описание изображения здесь
  2. С помощью пользовательского посредничества: если вы хотите добавить пользовательский заголовок в компонент gateway, вы можете использовать либо пользовательскую последовательность, созданную с помощью посредника заголовка. Это уместно использовать, если ваше требование простое и не требует какой-либо сложной логики. Если вы хотите добавить пользовательский заголовок к определенному API, то вы можете добавить пользовательское посредничество только к этому API. В случае, если вы хотите добавить его ко всем API-интерфейсам как глобальное решение, вы можете добавить его как глобальную последовательность.
  3. С помощью пользовательского обработчика: если у вас есть сложные требования при добавлении пользовательского заголовка и если вы хотите добавить заголовок в компонент gateway, вы можете использовать пользовательский обработчик для достижения этой цели.

Ответ №2:

Для этой цели вы можете использовать пользовательскую последовательность или посредник заголовка.

В долгосрочной перспективе вы можете написать пользовательский обработчик для своей конкретной цели.

Ответ №3:

Вы можете добавить последовательность действий, как показано ниже:

 <sequence name="test" xmlns="http://ws.apache.org/ns/synapse"> 
<property name="<NAME>" value="<VALUE>" scope="transport"/>
<property name="<NAME>" value="<VALUE>" scope="transport"/> 
</sequence> 
 

Комментарии:

1. Я загрузил test.xml включая <последовательность xmlns=» ws.apache.org/ns/synapse » name=»test»> <имя заголовка =»ИДЕНТИФИКАТОР» область действия =»транспорт» значение =»xxx»/> </sequence> на портале издателя, раздел посредничества сообщений, я ожидал, что wso2 добавит этот заголовок в вызывающий api иотправьте его на серверную часть, но при вызове API без указанного заголовка серверная часть выдает исключение, что означает, что заголовок не найден, но когда я добавляю заголовок со стороны клиента, api работает нормально. Я думаю, что wso2 apim ничего не делает с заголовком

2. я также тестировал с помощью <sequence name=»test» xmlns=» ws.apache.org/ns/synapse «> <имя свойства =»ИДЕНТИФИКАТОР» значение =»xxx» область действия =»транспорт»/> </последовательность> но результат был тот же!

3. Я исправил проблему, как вы ответили, но моя ошибка заключалась в том, что я тестировал API в среде publisher, я опубликовал API, затем в консоли разработчика я получил ключ API, и он работал нормально. Спасибо