我一直在使用 OpenAPI 3.0 架构来验证 OpenAPI 3.0 规范。但是,我似乎无法使用 OpenAPI 3.1 架构来验证 OpenAPI 3.1 规范。
使用 OpenAPI 3.0,我可以将 这个在线 JSON 验证器 与 schema/2021-09-28 架构一起使用,来自 OpenAPI Initiative Registry。
对于 OpenAPI 3.1,我从同一页面下载了 schema-base/2022-10-07 架构。当我将其粘贴到 online JSON Validator 并针对 OpenAPI 规范运行它时,它会报告以下错误:
Could not read the JSON Schema : virtual://server/schema.json Error when resolving schema reference '#/$defs/dialect'. Path 'properties.jsonSchemaDialect', line 9, position 26.
在我的 .NET 代码中,我尝试使用 JsonSchema.Net 和 Newtonsoft.Json.Schema 进行 JSON 验证。这些库都无法加载 JSON 架构,因为它们无法解析此架构参考:https://spec.openapis.org/oas/3.1/schema/2022-10-07#/$defs/parameter/dependentSchemas /schema/$defs/styles-for-path
我错过了什么?
liquid 和 Newtonsoft 不支持 OpenAPI 3.1 所基于的 JSON Schema Draft 2020-12。
如果你想要另一个可靠的.Net包,你可以尝试https://www.nuget.org/packages/JsonSchema.Net.OpenApi