0

我正在开发一个在 Kafka 中使用 JSON-LD 作为输入和输出格式的项目。现在,我想用 AsyncAPI 为我们的文档定义消息。但我遇到了@id 或@type 等问题建模属性。只要我添加“@”符号,AsyncAPI 就会提供错误。根据 JSON-LD 标准,JSON-LD 是有效的 JSON。那么,它应该与 AsyncAPI 一起使用正确吗?或者我的误解在哪里?

我们在您的 AsyncAPI 文档中发现以下错误:第 17 行第 11 列映射条目的缩进错误:@id:^

4

1 回答 1

0

TLDR:仅仅因为允许这样做,并不意味着工具支持它。支持这一点的方法是在解析器中创建一个特性请求。

虽然 JSON-LD 可能是有效的 JSON 并且绝对允许使用,但工具需要知道如何解释它。该规范有一组必需的 Schema格式,所有工具都必须支持这些格式,以及推荐的其他格式。不幸的是,JSON-LD 目前不在该列表中,这就是您发现缺少支持的原因。

我怀疑您使用了类似 AsyncAPI 操场的东西,它给了您这个错误?

在这种情况下,问题的根源在于,解析 AsyncAPI 文档的解析器无法识别您提供的格式。您可以在此处阅读更多相关信息:https ://github.com/asyncapi/parser-js#custom-message-parsers

为简单起见,您定义的任何有效负载模式(可能是RAMLOpenAPI 模式AVRO或任何其他模式,甚至 JSON-LD)都在幕后转换为JSON 模式。这样做的原因是,如果他们需要理解所有这些不同的格式,那么工具的复杂性就会太高。

因此,虽然可以使用 JSON-LD 定义有效负载,但这并不一定意味着工具支持它。

因此,您介意为该功能的解析器添加功能请求吗?

于 2021-07-29T08:46:29.557 回答