IBM API Connect>封装Path变量

时间:2018-05-01 15:44:03

标签: apiconnect

我正在使用API​​ connect来与我使用的其中一个数据库进行交互,而不是直接通过代码将查询发送到Rest API(这对我正在做的事情来说效率要高得多)。但是,唉,不允许。

无论如何,这是我的问题:

mtoa.cmds.arnoldRenderView

所有内容都附加到此示例网址的末尾,以便:

 BASE PATH:   

 https://api.com/apim

URL尝试接受此作为URL的一部分,而不是作为我尝试发送到API本身中定义的查询的字符串。这给我们带来了一些HTTP错误,我不确定如何解决这个将值封装成某些东西的缺点。麻烦的是我不确定API连接是否可以做到这一点。不幸的是,无法更改需要文件路径类型值的查询。

你们这些优秀的小伙子们对API连接的经验比我目前对它的知识非常有限吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试以查询字符串格式发送与变量相关联的额外路径,并为请求html编码de值。

 \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

答案 1 :(得分:0)

1:在您的示例中,您似乎正在尝试使用路径参数来确定对后端的请求。如果打算这样做,那么您只需要在您的invoke / proxy策略中引用该变量。

IE:https://api.com/apim/myapi/{someValue} 有关如何使用路径变量的问题的答案:@Mindaugas Bernatavičius

invoke / proxy策略中的参考变量: - invoke: target-url: "https://mybackend.com$(someValue)"

2:您可以将所需路径的段分成几个变量,并使用IE(网关脚本或映射)策略来构建由调用/代理策略引用的url变量,以调用DB。 / p>

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

3:您可以将其作为api路径中的必需查询参数,并在invoke / proxy策略中引用该变量。这样可以使整个后端请求都是动态的,因此您不必在后端地址更改时随时重新发布

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

调用参考: - invoke: target-url: "$(dbUrl)"

类似地,您可能要求它位于请求标头或正文中。