ValidateOpenAPI validates the given object against an OpenAPI/Swagger schema version. It tries 3.2 first, then falls back to 3.1, 3.0, and finally Swagger 2.0.
(data interface{})
| 538 | // ValidateOpenAPI validates the given object against an OpenAPI/Swagger schema version. |
| 539 | // It tries 3.2 first, then falls back to 3.1, 3.0, and finally Swagger 2.0. |
| 540 | func ValidateOpenAPI(data interface{}) error { |
| 541 | openapiOnce.Do(initOpenAPISchemas) |
| 542 | |
| 543 | var errs error |
| 544 | |
| 545 | err := compiledOpenAPISchemas[OpenAPIVersion3_2].Validate(data) |
| 546 | if err != nil { |
| 547 | if err := errorIsJSONFormat(err); err != nil { |
| 548 | return err |
| 549 | } |
| 550 | errs = multierror.Append(errs, err) |
| 551 | } else { |
| 552 | return nil |
| 553 | } |
| 554 | |
| 555 | err = compiledOpenAPISchemas[OpenAPIVersion3_1].Validate(data) |
| 556 | if err != nil { |
| 557 | if err := errorIsJSONFormat(err); err != nil { |
| 558 | return err |
| 559 | } |
| 560 | errs = multierror.Append(errs, err) |
| 561 | } else { |
| 562 | return nil |
| 563 | } |
| 564 | |
| 565 | err = compiledOpenAPISchemas[OpenAPIVersion3_0].Validate(data) |
| 566 | if err != nil { |
| 567 | if err := errorIsJSONFormat(err); err != nil { |
| 568 | return err |
| 569 | } |
| 570 | errs = multierror.Append(errs, err) |
| 571 | } else { |
| 572 | return nil |
| 573 | } |
| 574 | |
| 575 | err = compiledOpenAPISchemas[OpenAPIVersion2_0].Validate(data) |
| 576 | if err != nil { |
| 577 | if err := errorIsJSONFormat(err); err != nil { |
| 578 | errs = multierror.Append(errs, err) |
| 579 | return errs |
| 580 | } |
| 581 | return multierror.Append(errs, err) |
| 582 | } |
| 583 | |
| 584 | return nil |
| 585 | } |
| 586 | |
| 587 | // ValidateAsyncAPI validates the given object against an AsyncAPI schema version. |
| 588 | // It tries 3.0 first, then falls back to 2.6. |