Ответ 1
Арно в комментариях правильно, что здесь есть два отдельных вопроса.
Вы хотите проверить, что ваша спецификация является действительной спецификацией OpenAPI (fka. Swagger)
Вы можете
- Скопируйте свою спецификацию в онлайн-редактор Swagger, и это вызовет ошибки. Быстрое погружение через источник не говорит мне, что он использует для создания этих ошибок, но, похоже, он не обращается к серверу с сделайте это...
- Используйте официальный swagger-parser для Java.
- Используйте неофициальный swagger-parser для JavaScript (браузер или Node).
или подтвердите, что реализация этой спецификации приведет к созданию JSON, который действителен в отношении ваших схем JSON?
Другими словами, здесь некоторые JSON из тела запроса или ответа правильны?
Swagger полагается на другой стандарт под названием JSON Schema для объектов схемы, которые фактически описывают JSON (а не конечные точки или метаданные). Swagger использует подмножество JSON Schema (отсутствует: oneOf
, patternProperties
и другие). С этой целью вы можете использовать валидатор JSON Schema. Есть 37, указанный здесь; Я дам крик этот онлайн-валидатор, который также поддерживает схемы YAML.
Но, когда я сказал, что Swagger полагается на подмножество API JSON, я соврал. Есть несколько фиксированных полей, которые имеют особое значение в Swagger, которые не являются частью JSON Schema. Один из них - discriminator
, который используется для полиморфизма. Я не знаю валидатора Swagger, который может обрабатывать discriminator
. Есть справедливое количество инструментов для чванства, и некоторые утверждают, что делают валидации, но многие из них являются отказавшимися, предназначенными для старых версий, а не полнофункциональными, привязаны к другим технологиям и т.д. Если есть зрелая и ухоженная библиотека, которую мне не хватает, я бы с удовольствием узнал.