问题标签 [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.
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 中表示的评论吗?
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 - 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。
谢谢
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。
raml - 如何在 RAML 中定义一个全局变量
我想在 RAML 文件中使用全局变量:
但它不起作用。RAML 真的允许这样做吗?
raml - RAML 1.0:在可选对象中定义 minProperties
我想定义一个可选size
对象。如果对象存在,则应该至少给出一个指定的属性(min
或max
)。我虽然是这样的:
但这似乎minProperies
意味着size
必须可用。如果我只设置最小值或最大值,至少我会收到此验证错误:
如何在不使用始终设置的size
对象的情况下实现初始规范?
mule - RAML 字符串数组中项目的最大长度
我正在定义 RAML 规范。我有一个属性来保存一个字符串数组。我想制定一个规则,数组中的字符串值最多只能有 3 个字符(例如:regions: ["wes","nrh"]
有效。regions: ["lenghthyvalue", "anotherLenghthyvalue"]
无效)。我如何在 RAML 中处理它。我当前的代码如下:
可用的属性只有 maxItems。如何限制项目的字符长度?
我使用 raml 1.0
raml - resourceType 如何从多种类型继承?
目标:为 CRUD 端点创建 resourceTypes 而无需重复自己。
(在 Anypoint Studio 和 Mulesoft Design Center 中使用 RAML 1.0)
让我们为单个操作端点启动几个资源类型:
到目前为止,一切都很好。
现在我想为允许 GET 和 DELETE 请求的端点创建一个 resourceType。这是有效的:
...但我不得不重复 deleteItem 中的代码,这是我不喜欢的。
这些方法不起作用:
有没有更好的办法?
我想出了一个丑陋的解决方法(“基本”资源类型,每个类型都将其类型设置为一个变量,因此它们可以串在一起),但它似乎会导致 Mulesoft 设计中心出现不一致的错误和崩溃。
raml-1.0 - 如何让两个 raml 属性互斥?
我在 raml1.0 中有一个具有 4 个属性的类型,我需要实现这种情况:四个属性中的两个属性只存在,所以如果其中一个存在,另一个不应该存在,并且如果它们都发生了适当的错误消息扔给用户。
例如:
非常感谢任何帮助。顺便说一句,这些类型中的每一个都是一个复杂的对象。我只是在这里简化它只是为了演示。
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