问题标签 [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.
parameters - 带有 baseUriParameter 的 Mule-APIkit 会截断资源路径,从而出错为“找不到资源”
任何人都可以在这里建议/纠正我如何让 APIkit 路由器与baseUriParameter
. 如果 HTTP 侦听器连接器中的路径被硬编码为/api/process/30001/*
,则一切正常。APIKit 路由器能够路由请求的资源路径。但是,当 HTTP 侦听器连接器路径中有一个占位符时/api/process/{clientID}/*
,APIkit 路由器会抛出一个错误,如No resource found
.
从下面的堆栈跟踪中,我可以看到请求资源路径被截断,例如,/sample
变得公正ple
,我找不到原因。通过调试,我可以看到完整的请求 URI。调试模式下的图像查看完整的请求路径。
我尝试了其他一些选项,例如:
- 在路由器配置中检查'keep raml base uri'
- 取消选中HTTP 侦听器连接器高级选项卡中的“解析请求”框
我也检查了这一点,以确保我的 RAML 符合raml-template-uris 和 uriparams。
我在 MuleSoft 文档中找到了这个:
在 API Gateway Runtime 2.x 及更早版本中,APIkit 旨在与 RAML 接口紧密配合,但不会自动从 RAML 定义中导入以下项目:
安全方案
协议
baseUriParameters
那么,我该如何导入baseUriParameters
?我如何使它工作?
我已经被这个问题困扰了很长时间,所以非常感谢任何帮助。如果我遗漏了什么,请纠正我。非常感谢!
流动:
堆栈跟踪:
mule - API 的 RAML 中的 HTTP 响应正文类型
我正在使用 Mule Anypoint 设计中心创建一个 API,在那里我从其他端点接收类型为 text/plain 的数据。我可以在下面的 raml 代码中使用 text/plain 而不是 application/json 吗?
我为什么要问这个?
我的端点是 AWS SNS,它发送一个 HTTP 标头 Content-Type,其值为“text/plain”,并且工作室中的 apikit 路由器验证内容类型是否为“RAML 规范(应用程序/json)中指定的任何内容” . 当然,我可以禁用验证,但我还有其他事情要验证,这取决于它。
mule - APIkit API 控制台返回 json 示例而不是真实响应
开发 Mule API,需要部署到 cloudhub 并设置 API 控制台来测试端点。除了响应之外,一切都很好 - API 控制台返回 JSON 示例响应而不是真实响应,从处理真实数据中获得。在这种状态下,API Console 毫无价值。
APIkit 路由器配置:
注意:从 api.raml 生成 RESTful 流,不会产生 api-console 流
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 片段:
请指出我需要改进的地方。提前致谢。
xml - Mule 4 嵌套 XML 模式导入在 APIKit 路由器中失败
我正在尝试在 APIKit 路由器上进行 XML 模式验证以验证请求
架构结构如下
所有这些 xsd 文件都放在同一个模式文件夹中。
我面临的问题是,当我触发对 API 的任何请求时,它无法导入第三个模式(Objects.xsd),它给出了以下错误
我已将所有文件正确放置在同一个文件夹中,但不知道为什么它总是无法获取第三个 xsd 文件。
下面是架构和示例有效负载
根.xsd
通知.xsd
对象.xsd
XML 示例
请分享您的建议
mule - 高安全性问题影响-Mule-runtimes-of-all-supported-versions-March-19th-2020
Mule 建议在 3 月 19 日进行安全更新,该更新应该适用于所有受支持的 Mule 版本。以下网址已失效:
有人可以帮助解决这个漏洞或安全补丁的内容吗?
我正在使用 Mule 运行时 v3.9.0
根据最新文章,我只能通过https://help.mulesoft.com/s/article/Error-Provided-value-xx-is发现 3 月 19 日的安全补丁存在一些问题,并由 mule 修复-不符合格式日期时间在 rfc3339 中提供
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,一切正常。但我想用它来验证请求的有效性。
感谢大家回复任何有用的提示!
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 或我的应用程序会发生什么吗?
web-services - Mule 4:将数据映射到 SOAP 响应的问题,命名空间不同
我在使用 ApiKit for SOAP 将传出数据映射到 SOAP 响应时遇到问题。
响应应该是这样的:
但这就是响应的样子:
这是 DataWeave 转换器:
据我了解,XML 命名空间存在某种问题,但我不知道如何使用正确的命名空间使响应看起来像它应该的样子......有没有办法让我当前的响应看起来像预期的响应?
mule - Mule APIKit:由于布尔查询参数而导致 mUnit 的路由器错误
我在 Anypoint 平台上有一个 API,它的重要规格是:
- http方案
- 请求端点=“检索信息”
- queryParams = {"key": "value", isAllow: true}
我使用具有上述规格的 RAML v1.0 构建了 Mule 流程,并且所有功能都运行良好。现在,我正在尝试为 mule 流开发 mUnit。对于测试用例,我设置了以下事件并将 flowReference 调用到 Mule 流。
现在运行单元,APIKit:Router 抛出错误,即不能将大小写从布尔值转换为字符串。如果我更改为“'isAllow': 'true'”,那么 APIKit:Router 会抛出有效错误 APIKIT:NOT_IMPLEMENTED。
谁能帮助如何在不更改 API 规范的情况下实现这种情况?