我正在使用API connect来与我使用的其中一个数据库进行交互,而不是直接通过代码将查询发送到Rest API(这对我正在做的事情来说效率要高得多)。但是,唉,不允许。
无论如何,这是我的问题:
mtoa.cmds.arnoldRenderView
所有内容都附加到此示例网址的末尾,以便:
BASE PATH:
https://api.com/apim
URL尝试接受此作为URL的一部分,而不是作为我尝试发送到API本身中定义的查询的字符串。这给我们带来了一些HTTP错误,我不确定如何解决这个将值封装成某些东西的缺点。麻烦的是我不确定API连接是否可以做到这一点。不幸的是,无法更改需要文件路径类型值的查询。
你们这些优秀的小伙子们对API连接的经验比我目前对它的知识非常有限吗?
答案 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)"
类似地,您可能要求它位于请求标头或正文中。