问题标签 [raml-1.0]

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 投票
1 回答
1678 浏览

java - Java Map 的 RAML 1.0 表示

我有 RAML 模式,其中包含 "javaType": "java.util.Map<String, java.util.List<Employee>>"

我有单独的模式(employee.schema)代表员工类。

但由于我没有在 RAML 中使用 employee.schema,所以它不会生成类 Employee 并在将 RAML 转换为 Java 时抛出错误。

任何人都可以分享如何"javaType": "java.util.Map<String, java.util.List<Employee>>"在 RAML 中表示的评论吗?

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 回答
24 浏览

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

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

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

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

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

谢谢

0 投票
1 回答
165 浏览

mule - 如何在 Anypoint Studio 项目中更改 RAML 版本

这可能是一个愚蠢的问题,因为我不知道这是否可能,但有没有办法更改 RAML Anypoint Studio 项目使用的版本(Mule 3.9.1、Studio 6.4)?目前,当我创建一个新的 RAML 文件时,它会创建一个 0.8 版本。我想使用 1.0。我有 1.0 版本的项目,但我不记得做了什么来获得 1.0 而不是 0.8。

0 投票
1 回答
361 浏览

raml - 如何在 RAML 中定义一个全局变量

我想在 RAML 文件中使用全局变量:

但它不起作用。RAML 真的允许这样做吗?

0 投票
1 回答
742 浏览

raml - RAML 1.0:在可选对象中定义 minProperties

我想定义一个可选size对象。如果对象存在,则应该至少给出一个指定的属性(minmax)。我虽然是这样的:

但这似乎minProperies意味着size必须可用。如果我只设置最小值或最大值,至少我会收到此验证错误:

如何在不使用始终设置的size对象的情况下实现初始规范?

0 投票
1 回答
3365 浏览

mule - RAML 字符串数组中项目的最大长度

我正在定义 RAML 规范。我有一个属性来保存一个字符串数组。我想制定一个规则,数组中的字符串值最多只能有 3 个字符(例如:regions: ["wes","nrh"]有效。regions: ["lenghthyvalue", "anotherLenghthyvalue"] 无效)。我如何在 RAML 中处理它。我当前的代码如下:

可用的属性只有 maxItems。如何限制项目的字符长度?

我使用 raml 1.0

0 投票
1 回答
429 浏览

raml - resourceType 如何从多种类型继承?

目标:为 CRUD 端点创建 resourceTypes 而无需重复自己。

(在 Anypoint Studio 和 Mulesoft Design Center 中使用 RAML 1.0)

让我们为单个操作端点启动几个资源类型:

到目前为止,一切都很好。

现在我想为允许 GET 和 DELETE 请求的端点创建一个 resourceType。这是有效的:

...但我不得不重复 deleteItem 中的代码,这是我不喜欢的。

这些方法不起作用:

有没有更好的办法?

我想出了一个丑陋的解决方法(“基本”资源类型,每个类型都将其类型设置为一个变量,因此它们可以串在一起),但它似乎会导致 Mulesoft 设计中心出现不一致的错误和崩溃。

0 投票
1 回答
373 浏览

raml-1.0 - 如何让两个 raml 属性互斥?

我在 raml1.0 中有一个具有 4 个属性的类型,我需要实现这种情况:四个属性中的两个属性只存在,所以如果其中一个存在,另一个不应该存在,并且如果它们都发生了适当的错误消息扔给用户。

例如:

非常感谢任何帮助。顺便说一句,这些类型中的每一个都是一个复杂的对象。我只是在这里简化它只是为了演示。

0 投票
1 回答
54 浏览

exchange-server - 使用连字符分隔的资源名称 "/songs-list" 创建 API Notebook 时,会出现错误

在 RAML 1.0、API 平台 2.0 上使用连字符分隔的资源名称“/songs-list”创建 API Notebook 时,会出现以下错误: APINotebook 错误

API.createClient('client', '9c2861a1-b**b-401e-****-1ec*****b20c', 'testhyphen', '1.0.2');

$0=客户端已成功创建

client.songs-list.post[{"msg":"succ"}];

上述资产的 RAML 如下,资源名称为“/songs-list”:

如果资源名称不包含“-”(连字符),例如当资源为 -“/songs”时,则 API 笔记本按预期运行。 API Notebook 成功

API.createClient('client', '9c2861a1-b**b-401e-****-1ec*****b20c', 'testset', '1.0.1');

$0=Client has been successfully created

client.songs.post[{"msg":"succ"}];

Code snippet executed with no results