问题标签 [apikit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1414 浏览

parameters - 带有 baseUriParameter 的 Mule-APIkit 会截断资源路径,从而出错为“找不到资源”

任何人都可以在这里建议/纠正我如何让 APIkit 路由器与baseUriParameter. 如果 HTTP 侦听器连接器中的路径被硬编码为/api/process/30001/*,则一切正常。APIKit 路由器能够路由请求的资源路径。但是,当 HTTP 侦听器连接器路径中有一个占位符时/api/process/{clientID}/*,APIkit 路由器会抛出一个错误,如No resource found.

从下面的堆栈跟踪中,我可以看到请求资源路径被截断,例如,/sample变得公正ple,我找不到原因。通过调试,我可以看到完整的请求 URI。调试模式下的图像查看完整的请求路径

我尝试了其他一些选项,例如:

  1. 在路由器配置中检查'keep raml base uri'
  2. 取消选中HTTP 侦听器连接器高级选项卡中的“解析请求”框

我也检查了这一点,以确保我的 RAML 符合raml-template-uris 和 uriparams

我在 MuleSoft 文档中找到了这个:

在 API Gateway Runtime 2.x 及更早版本中,APIkit 旨在与 RAML 接口紧密配合,但不会自动从 RAML 定义中导入以下项目:

安全方案

协议

baseUriParameters

那么,我该如何导入baseUriParameters?我如何使它工作?

我已经被这个问题困扰了很长时间,所以非常感谢任何帮助。如果我遗漏了什么,请纠正我。非常感谢!

流动:

堆栈跟踪:

0 投票
1 回答
457 浏览

mule - API 的 RAML 中的 HTTP 响应正文类型

我正在使用 Mule Anypoint 设计中心创建一个 API,在那里我从其他端点接收类型为 text/plain 的数据。我可以在下面的 raml 代码中使用 text/plain 而不是 application/json 吗?

我为什么要问这个?

我的端点是 AWS SNS,它发送一个 HTTP 标头 Content-Type,其值为“text/plain”,并且工作室中的 apikit 路由器验证内容类型是否为“RAML 规范(应用程序/json)中指定的任何内容” . 当然,我可以禁用验证,但我还有其他事情要验证,这取决于它。

0 投票
0 回答
96 浏览

mule - APIkit API 控制台返回 json 示例而不是真实响应

开发 Mule API,需要部署到 cloudhub 并设置 API 控制台来测试端点。除了响应之外,一切都很好 - API 控制台返回 JSON 示例响应而不是真实响应,从处理真实数据中获得。在这种状态下,API Console 毫无价值。

APIkit 路由器配置:

注意:从 api.raml 生成 RESTful 流,不会产生 api-console 流

0 投票
1 回答
2865 浏览

mule - 为什么我得到 apikit:router not found 404 error in mule 即使它请求一个已经运行和部署的 api

我创建了 2 个 api:一个项目的系统和经验。系统已经部署到cloudhub并成功运行。体验api需要通过路由器使用url调用系统api:

http://demo-insurance-system-api.us-e2.cloudhub.io 和 uriparam 是 :customer 和 queryparams 是:?fname=James&lname=Butt 它工作得很好。但是当我想从体验 api 的请求者那里点击相同的网址时,它给了我

使用 postman 进行本地测试,体验网址为: http://localhost:8081/demoapi/customer?fname=James

经验api raml是:

在这里,我添加了HTTP 请求 xml 片段

请指出我需要改进的地方。提前致谢。

0 投票
0 回答
406 浏览

xml - Mule 4 嵌套 XML 模式导入在 APIKit 路由器中失败

我正在尝试在 APIKit 路由器上进行 XML 模式验证以验证请求

架构结构如下

所有这些 xsd 文件都放在同一个模式文件夹中。

我面临的问题是,当我触发对 API 的任何请求时,它无法导入第三个模式(Objects.xsd),它给出了以下错误

我已将所有文件正确放置在同一个文件夹中,但不知道为什么它总是无法获取第三个 xsd 文件。

下面是架构和示例有效负载

根.xsd

通知.xsd

对象.xsd

XML 示例

请分享您的建议

0 投票
1 回答
37 浏览

mule - 高安全性问题影响-Mule-runtimes-of-all-supported-versions-March-19th-2020

Mule 建议在 3 月 19 日进行安全更新,该更新应该适用于所有受支持的 Mule 版本。以下网址已失效:

https://help.mulesoft.com/s/article/High-security-issue-affecting-Mule-runtimes-of-all-supported-versions-March-19th-2020

有人可以帮助解决这个漏洞或安全补丁的内容吗?

我正在使用 Mule 运行时 v3.9.0

根据最新文章,我只能通过https://help.mulesoft.com/s/article/Error-Provided-value-xx-is发现 3 月 19 日的安全补丁存在一些问题,并由 mule 修复-不符合格式日期时间在 rfc3339 中提供

0 投票
1 回答
254 浏览

mule - apiKit 路由器 Mule4 后多部分/表单数据损坏

在请求通过 Mule4 app 中的 ApiKit 路由器后,从 multipart/form-data 读取数据时遇到问题。

有一个 RAML,在 ApiKit 路由器中用于验证和路由请求。

验证工作正常 - 如果数据以不正确的格式发送,则返回异常。对于格式正确的数据,请求被路由到流post:\acc\reverse\entrylist:multipart\form-data:acc-race-data-config。在这些步骤之间,有效载荷格式(由 Mule)从可读形式的有效载荷(见下文)更改为java.io.ByteArrayInputStream@379ebdd5

ApiKit 路由器之前有效载荷数据的可读格式(接收到应用程序):

如果在 apiKit 之前使用以下 dataweave 脚本可以正常工作,但它在 ApiKit 调用的流程中不起作用:

在ApiKit之前使用上述 DW 的输出示例:

ApiKit使用相同DW的输出示例:

在 Anypoint Studio 7.8.0 中进行测试,一旦完成并准备好部署,就应该在 Mule4-CE 运行时使用。使用 Postman v8.5.1 进行测试。发送带有qualifyResult 和raceOneResult 部分的表单数据正文,其中包含JSON 数据、默认标头、基本身份验证、查询参数positionsRotated=30。网址调用:https://localhost:443/api/acc/reverse/entrylist?positionsRotated=30 尝试使用 RAW 类型的有效负载手动生成 multipart/form-data 正文,但结果相同。如果没有 ApiKit,一切正常。但我想用它来验证请求的有效性。

感谢大家回复任何有用的提示!

0 投票
2 回答
1034 浏览

mule - Mule 4 - 流程突然停止初始化,警告出现一些神秘的 yml 文件,MUnit 测试开始抛出意外错误

我今天正在开发我的 Mule 4 应用程序,突然间我的 Anypoint Studio 发疯了。当我尝试运行我的应用程序时,我收到一个错误,表明应用程序使用的端口已在使用中。没什么异常,但是当我重新启动 PC 并想再次运行该应用程序时,控制台中出现了可疑信息:

信息 2021-05-25 12:40:21,056 [WrapperListener_start_runner] [处理器:; 事件:] org.mule.runtime.core.internal.construct.AbstractFlowConstruct:流 ImportPendingCorrectionsFlow 尚未启动 INFO 2021-05-25 12:40:21,056 [WrapperListener_start_runner] [处理器:; 事件:] org.mule.runtime.core.internal.construct.FlowConstructLifecycleManager:开始流程:ImportInvoicesFlow INFO 2021-05-25 12:40:21,056 [WrapperListener_start_runner] [处理器:; 事件:] org.mule.runtime.core.internal.construct.FlowConstructLifecycleManager:停止流:ImportInvoicesFlow

以及我的应用程序中所有流的相同消息。

然后我尝试运行一个现有的 MUnit 测试,该测试自一个月或更长时间以来一直正常运行,我收到了这个错误:

++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++

  • 运行测试:ImportInvoicesFlowTestWithIncorrectVehicleCount - 测试 + +++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++ java.lang.AssertionError: 抛出的错误 ID 与预期的不匹配。预期:<[APP:VALIDATION]> 但在 org.mule.munit.runner.flow.TestFlow.run(TestFlow.java:313) 上是:<[HTTP:CONNECTIVITY]> 原因:java.io.IOException:远程关闭原因:java.io.IOException:远程关闭

这确实很奇怪——因为这个流程与此无关HTTP

最后,我WARN在控制台中发现了一个很奇怪的地方:

WARN 2021-05-25 13:04:35,613 [Mule.app.deployer.monitor.1.thread.1] [处理器:; 事件:] com.mulesoft.agent.configuration.descriptor.YamlMuleAgentDescriptor:描述符文件/home/xxxxxxx/apps/AnypointStudio-7.7.0-linux64/AnypointStudio/plugins/org.mule.tooling.server.4.3.0.ee_7。 3.5.202105101830/mule/conf/invoices-esb-mule4-app.yml 未找到。

我不知道这里发生了什么,我从来没有创建过这样的文件invoices-esb-mule4-app.yml。我假设这是 Mule 自己根据应用程序名称创建的某种配置文件。这里的路径很奇怪,因为我正在处理的工作区在/home/xxxxxxx/AnypointStudio7/workspace-2/

其他可能有帮助(或没有帮助)的信息

  • 我正在开发一个 ApiKit SOAP 服务,但它仍然运行良好。
  • 有一次,我错误地单击了 Mule Design 透视图并单击了 Api Desing 透视图,这以应用程序崩溃告终,但在再次启动 Anypoint Studio 后它似乎可以正常工作。

有人知道我的 Anypoint Studio 或我的应用程序会发生什么吗?

0 投票
1 回答
112 浏览

web-services - Mule 4:将数据映射到 SOAP 响应的问题,命名空间不同

我在使用 ApiKit for SOAP 将传出数据映射到 SOAP 响应时遇到问题。

响应应该是这样的:

但这就是响应的样子:

这是 DataWeave 转换器:

据我了解,XML 命名空间存在某种问题,但我不知道如何使用正确的命名空间使响应看起来像它应该的样子......有没有办法让我当前的响应看起来像预期的响应?

0 投票
1 回答
173 浏览

mule - Mule APIKit:由于布尔查询参数而导致 mUnit 的路由器错误

我在 Anypoint 平台上有一个 API,它的重要规格是:

  1. http方案
  2. 请求端点=“检索信息”
  3. queryParams = {"key": "value", isAllow: true}

我使用具有上述规格的 RAML v1.0 构建了 Mule 流程,并且所有功能都运行良好。现在,我正在尝试为 mule 流开发 mUnit。对于测试用例,我设置了以下事件并将 flowReference 调用到 Mule 流。

现在运行单元,APIKit:Router 抛出错误,即不能将大小写从布尔值转换为字符串。如果我更改为“'isAllow': 'true'”,那么 APIKit:Router 会抛出有效错误 APIKIT:NOT_IMPLEMENTED。

谁能帮助如何在不更改 API 规范的情况下实现这种情况?