IBM API Connect ›Инкапсуляция переменной пути

Я использую API-интерфейс для взаимодействия с одной из баз данных, с которой я работаю, вместо того, чтобы напрямую отправлять запрос через код в Rest API (что намного эффективнее для того, что я делаю). Но увы не позволили.

Во всяком случае, вот моя проблема:

 BASE PATH:   

 https://api.com/apim

Все добавляется в конец URL-адреса этого примера, так что:

 API PATH:

 https://api.com/apim/myapi/{some value}

 Values: '\Project\ProjectInfo\'

URL-адрес пытается принять это как часть URL-адреса, а не как строку, которую я пытаюсь отправить в определенный запрос в самом API. Это вызывает у нас некоторые ошибки HTTP, и я не совсем уверен, как мы можем обойти эту проблему, за исключением инкапсуляции значения во что-то. Проблема в том, что я не уверен, что API-интерфейс может это сделать. К сожалению, рассматриваемый запрос, для которого требуется значение типа «Путь к файлу», не может быть изменен.

У кого-нибудь из вас, прекрасные ребята, больше опыта работы с API-подключением, чем мои крайне ограниченные знания о нем в настоящее время?


person Randy B.    schedule 01.05.2018    source источник


Ответы (2)


вы можете попытаться отправить дополнительный путь в формате строки запроса, связанный с переменной и кодировкой значения de для запроса html.

 \Project\ProjectInfo\ => %5CProject%5CProjectInfo%5C

Затем вы назначаете закодированное значение в переменной строки запроса:

https://api.com/apim/myapi/variable=%5CProject%5CProjectInfo%5C

Затем вы можете использовать политик gatwwayScript для декодирования значения:

https://www.ibm.com/support/knowledgecenter/en/SS9H2Y_7.7.0/com.ibm.dp.doc/querystring_js.html

person Mauro    schedule 17.07.2018

1: Из вашего примера видно, что вы пытаетесь использовать параметры пути для определения запроса для вашей серверной части. Если это задумано, вам просто нужно будет указать эту переменную в своей политике вызова / прокси.

IE: https://api.com/apim/myapi/{someValue} Ответ на вопрос о том, как использовать переменные пути: Можно ли использовать подстановочные знаки в путях API в IBM API Connect

Ссылочная переменная в политике вызова / прокси: - invoke: target-url: "https://mybackend.com$(someValue)"

2: вы можете разбить нужные сегменты пути на несколько переменных и использовать политику IE: gatewayscript или map для создания переменной url, на которую ссылается политика invoke / proxy для вызова БД.

IE: https://api.com/apim/myapi/{someProject}/{someProjectInfo}

3: вы можете использовать его в качестве обязательного параметра запроса в своем пути api и ссылаться на эту переменную в своей политике вызова / прокси. Это позволит сделать весь бэкэнд-запрос динамическим, поэтому вам не нужно будет повторно публиковать каждый раз, когда серверный адрес изменяется.

IE: https://api.com/apim/myapi/dbCall?dbUrl="https://somebackend.com/project/projectinfo"

Ссылка в invoke: - invoke: target-url: "$(dbUrl)"

Точно так же вы можете потребовать, чтобы он был в заголовках или теле запроса.

person Nick Coble    schedule 30.07.2018