【问题标题】:Dynamic call in RAML based on query paramsRAML中基于查询参数的动态调用
【发布时间】: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

并附上截图方便理解。

【问题讨论】:

    标签: mule mule-studio dataweave mulesoft raml-1.0


    【解决方案1】:

    RAML 文件不可执行,并不意味着动态“调用”或“请求”。相反,它们描述了 API 的结构和类型。它们可能包括可选的示例,但无法“选择”一个示例而不是其他示例。

    我认为您的问题确实与 Anypoint Platform 中的 Mocking Service 的工作原理有关。这是一个使用 RAML 文件来模拟 API 请求的产品。阅读文档,我根本看不到选择特定示例的方法。

    作为替代方案,您可以在应用程序中实现 API,并添加逻辑以根据查询参数输入返回所需的响应。例如,您可以使用 APIKit 在 Anypoint Studio 中搭建 RAML API 并在 Mule 运行时中部署/执行。

    【讨论】:

    • 是的,我确实在应用程序中实现了 API 并根据查询参数输入返回所需的响应,并且它按预期工作。但是我们需要以相同的方式向客户发送至少 2 到 3 个示例的 Mocking 服务,以显示演示并在有任何选项的情况下进行签收。所以尝试这个选项。
    • Mocking 服务好像没有这个功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2016-07-24
    • 2015-07-30
    • 2018-01-15
    • 2014-05-21
    • 2013-05-03
    相关资源
    最近更新 更多