RAML文件在Anypoint Studio中引发无效的Json架构响应
我在Mule 3.8.1中使用Anypoint Studio 6.2,并添加了一个raml和JSON模式,该模式在api workbench中没有显示错误,但在Anypoint Studio中显示JSON模式无效错误 我发现,如果我从所有链接到raml的Json模式(即raml、traits和types)中删除required字段,那么一切都会正常工作。有办法解决这个问题吗 我使用的所需语法是:RAML文件在Anypoint Studio中引发无效的Json架构响应,json,mule,jsonschema,anypoint-studio,raml,Json,Mule,Jsonschema,Anypoint Studio,Raml,我在Mule 3.8.1中使用Anypoint Studio 6.2,并添加了一个raml和JSON模式,该模式在api workbench中没有显示错误,但在Anypoint Studio中显示JSON模式无效错误 我发现,如果我从所有链接到raml的Json模式(即raml、traits和types)中删除required字段,那么一切都会正常工作。有办法解决这个问题吗 我使用的所需语法是: "required": [ "Organisation", "Address"
"required": [
"Organisation",
"Address"
],
已更新
我还看到一个org.mule.common.metadata.parser.json.SchemaException:java.net.MalformedURLException:no protocol:
,在使用json模式创建要在Dataweave中使用的元数据类型时,$ref无法解析:
{
"id": "http://localhost:8000/schemas/products.json#",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Products",
"type": "object",
"properties": {
"Products": {
"$ref": "common/text.json"
}
},
"additionalProperties": false
}
谢谢我也这么做,所以Studio肯定支持它。在没有看到整个JSON模式文件的情况下,我不得不猜测原因,我的假设是,要么没有指定JSON模式版本,要么指定了错误的版本(至少应该是v4,而不是v3,这样才能工作)。以下是我的作品:
{
"$schema": "http://json-schema.org/draft-04/schema",
"type": "object",
"properties": {
"Organisation": { "type": "string" },
"Address": { "type": "string" }
},
"required": [ "Organisation", "Address" ]
}
关于新添加的$ref,我们也使用它,它似乎由APIKit正确解析(即消息被正确验证),但是我不使用这些模式来创建Dataweave元数据,因此我不能保证它的行为相同(我希望它使用相同的解析器,但不能确定) Common.json:
{
"$schema": "http://json-schema.org/draft-04/schema",
"definitions": {
"emailAddress": {
"description": "Basic RegEx for an email address",
"type": ["string","null"],
"pattern": "^[a-zA-Z0-9'._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
}
}
}
Sample.json:
{
"$schema": "http://json-schema.org/draft-04/schema",
"type": "object",
"properties": {
"email": {
"$ref": "common.json#/definitions/emailAddress"
}
}
}
也许它只支持v3模式。尝试使用put“required”:“true”在每个字段中(这是v3模式格式),我发现当我遵循Pedro的建议时,所有问题都得到了解决,如果我恢复使用所需的数组,则返回错误,因此看起来它目前与v3唯一兼容。我需要做些什么才能将其更新到最新版本?您是否按照Brad的建议将“$schema”:”添加到json模式?是的,根据Pedro的评论和我的回答,您需要指定模式版本4。正如我最初所说,对于我正在进行的项目,这在studio中绝对有效。谢谢。添加$schema能够解决我看到的大多数错误。我还有一个例子,当我使用一个使用$ref创建元数据类型的模式时,它会抛出一个错误,但当我删除引用并直接从文件中添加代码时,它会起作用。你知道是什么导致了这一切吗?我已经用一个失败的示例模式更新了上面的代码。