как можно добавить параметры заголовка в rest API в wso2 apim 2.6.0 через посредник потока

#header #wso2 #wso2-am #wso2carbon #mediator

#заголовок #wso2-api-manager #wso2 #посредник

Вопрос:

У меня есть Rest API в wso2 apim 2.6.0, который имеет ввод и вывод json.И имеет ресурс Get. Я хочу добавить к нему параметры заголовка. итак, мне нужен посредник потока.

Я использую этот посредник, но он не работает.

 <?xml version="1.0" encoding="UTF-8"?>
<sequence name="newUser" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <header name="caller-token" scope="transport" value="234"/>
    <header name="Content-Type" scope="transport" value="application/json"/>
    <header name="Authorization" scope="transport" value="Bearer dd"/>
    <header name="Access-Control-Allow-Origin" scope="transport" value="https://onlineapi.agah.com/api/v1/"/>
    <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
    <log level="full"/>
</sequence>
  

после вызова его в хранилище я получаю эту ошибку:
(400) Ошибка: не найдена
Заголовки ответов:
тип содержимого: приложение / октет-поток

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

1. работает ли это с curl или любым другим клиентом REST, таким как Postman?

2. Это работает с Postman. и у меня там есть 4 параметра заголовка. итак, мне нужно каким-то образом добавить их в мое определение API. но я не знаю как.

Ответ №1:

Это, должно быть, проблема CORS. Вам нужно включить пользовательские заголовки в правилах CORS. Добавьте свои пользовательские заголовки в CORS раздел в api-manager.xml . Это влияет на все API. Если вы хотите добавить это только для определенного API, вы можете настроить это в самом API.

Повторный запрос:https://docs.wso2.com/display/AM260/Enabling CORS for APIs

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

1. Я использую это, но получаю сообщение об ошибке: «Протокол CORS не позволяет указывать подстановочный знак (любой) источника и учетных данных одновременно. Настройте политику, указав отдельные источники, если необходимо поддерживать учетные данные. » . Я думаю, что это решение не может быть моим решением, потому что, например, у меня есть заголовок ‘authorization’, а у wso2 этот заголовок тоже имеет другое значение. итак, я не могу вызвать API с двумя заголовками ‘authorization’ с разными значениями. В CORS я определил свой требуемый заголовок, но пользователи, вызывающие API, заполняют его, но я хочу, чтобы мои требуемые заголовки были заполнены в определении API

2. Есть ли какая-либо причина, по которой вы хотите включить <Access-Control-Allow-Credentials> ? И смотрите это, как установить другой заголовок для аутентификации GW. docs.wso2.com/display/AM220/Securing APIs

3. Я исправляю проблему с первым посредником, о котором я упоминал в своем вопросе. Проблема заключалась в URL, который я дал для рабочей конечной точки, а не в добавлении требуемых заголовков в определение API. Таким образом, мы можем использовать этот посредник с тегами заголовка для добавления желаемых заголовков.