#api #wso2 #wso2-am
#API #wso2 #wso2-api-manager
Вопрос:
Я создал API в WSO2 API Manager и хочу добавить пользовательский заголовок, когда API gateway получит запрос, и установить пользовательский заголовок для API и передать его на серверную часть. например, когда API gateway получает запрос для каждого запроса этого типа, добавляет «My-Header: xxxxx» к запросу и передает его на серверную часть.
Как это возможно?
Ответ №1:
Вы можете достичь этого с помощью различных методов, как указано ниже.
- Портал издателя: Если вы хотите добавить пользовательский заголовок вместе с самим запросом, вы можете добавить его следующим образом на портале издателя.
- С помощью пользовательского посредничества: если вы хотите добавить пользовательский заголовок в компонент gateway, вы можете использовать либо пользовательскую последовательность, созданную с помощью посредника заголовка. Это уместно использовать, если ваше требование простое и не требует какой-либо сложной логики. Если вы хотите добавить пользовательский заголовок к определенному API, то вы можете добавить пользовательское посредничество только к этому API. В случае, если вы хотите добавить его ко всем API-интерфейсам как глобальное решение, вы можете добавить его как глобальную последовательность.
- С помощью пользовательского обработчика: если у вас есть сложные требования при добавлении пользовательского заголовка и если вы хотите добавить заголовок в компонент 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, и он работал нормально. Спасибо