MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / ValidateOpenAPI

Function ValidateOpenAPI

internal/schemavalidators/schemavalidators.go:540–585  ·  view source on GitHub ↗

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{})

Source from the content-addressed store, hash-verified

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.
540func 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.

Callers 2

CraftMethod · 0.92
TestValidateOpenAPIFunction · 0.92

Calls 4

errorIsJSONFormatFunction · 0.85
DoMethod · 0.80
AppendMethod · 0.80
ValidateMethod · 0.45

Tested by 1

TestValidateOpenAPIFunction · 0.74