RAML中基于查询参数的动态调用
Posted
技术标签:
【中文标题】RAML中基于查询参数的动态调用【英文标题】:Dynamic call in RAML based on query params 【发布时间】:2021-10-27 01:07:27 【问题描述】:在 RAML 中查询参数的动态调用需要帮助。
在 RAML 中,我想动态调用示例文件夹中的 .raml 文件。 通过查询参数,如果我发送 ?count=2 (例如:https://anypointpoint.mulesoft.com/mocking/api?count=2)然后 2_records.raml 文件在响应中执行 示例文件夹...如果我发送 ?count=3 则 3_records.raml 文件作为响应执行,该文件位于示例文件夹中。
api规范如下,看清楚了:
/retrieveDetails 得到: 查询参数: count: #if query param ?count=2(in mock url) then 2_records.raml 执行。如果查询参数 ?count=3(在模拟 url 中)则 3_records.raml 执行。 enter image description here 类型:字符串 回复: 200: 身体: 应用程序/json 示例:!include Examples/2_records.raml
并附上截图方便理解。
【问题讨论】:
【参考方案1】:RAML 文件不可执行,并不意味着动态“调用”或“请求”。相反,它们描述了 API 的结构和类型。它们可能包括可选的示例,但无法“选择”一个示例而不是其他示例。
我认为您的问题确实与 Anypoint Platform 中的 Mocking Service 的工作原理有关。这是一个使用 RAML 文件来模拟 API 请求的产品。阅读文档,我根本看不到选择特定示例的方法。
作为替代方案,您可以在应用程序中实现 API,并添加逻辑以根据查询参数输入返回所需的响应。例如,您可以使用 APIKit 在 Anypoint Studio 中搭建 RAML API 并在 Mule 运行时中部署/执行。
【讨论】:
是的,我确实在应用程序中实现了 API 并根据查询参数输入返回所需的响应,并且它按预期工作。但是我们需要以相同的方式向客户发送至少 2 到 3 个示例的 Mocking 服务,以显示演示并在有任何选项的情况下进行签收。所以尝试这个选项。 Mocking 服务好像没有这个功能。以上是关于RAML中基于查询参数的动态调用的主要内容,如果未能解决你的问题,请参考以下文章