Mule 应用程序不断触发错误的流程 - 可能的 RAML 问题

Posted

技术标签:

【中文标题】Mule 应用程序不断触发错误的流程 - 可能的 RAML 问题【英文标题】:Mule app keeps triggering the wrong flow - possible RAML issue 【发布时间】:2018-12-25 12:32:48 【问题描述】:

我编写了一个简单的 raml,它可以获取所有客户、通过 Id 获取客户或通过名称获取客户。 RAML 的结构如下:

/customer
   get:
      ...
   /id
      get:
         ...
   /name
      get:
         ...

我的问题是,当我传入客户名称时,例如john 然后它一直落入 GET id 的处理中,当我查看请求 URI 时,它显示 /api/customer/john 所以看起来它落入 GET id 处理中,因为它无法区分哪个它用于 URI 参数,GET id 是 XML 中的第一个流。

我怎样才能防止这种情况并让它去 GET name?

我从 Anypoint API 控制台调用它并使用 Mule 4.1 和 Anypoint 7。

谢谢

【问题讨论】:

【参考方案1】:

URL 参数只是字符串。所以 raml 和 apikit 没有办法区分这两者。他们无法知道什么是“名称”和“身份”。

我会将其更改为拥有 customer/id 并在客户资源 ?name=John 上使用查询参数

【讨论】:

以上是关于Mule 应用程序不断触发错误的流程 - 可能的 RAML 问题的主要内容,如果未能解决你的问题,请参考以下文章

mule3 到 mule 4 表达式到 dataweave 2.0

mule 在流程中从类路径中读取单个文件

Mule DataWeave 转换消息失败,缺少元数据:id 属性

无法使用 Jenkins 管道在本地部署 mule 4 应用程序

在 mule 中手动解析 RAML 文件的简单方法是啥?

Mule 请求者正在使用 JMS 队列中的所有消息