// AgainstSchema validates the specified data with the provided schema, when no schema // is provided it uses the json schema as default func AgainstSchema(schema *spec.Schema, data interface{}, formats strfmt.Registry) error { res := validate.NewSchemaValidator(schema, nil, "", formats).Validate(data) if res.HasErrors() { return errors.CompositeValidationError(res.Errors...) } return nil }
func newUntypedParamBinder(param spec.Parameter, spec *spec.Swagger, formats strfmt.Registry) *untypedParamBinder { binder := new(untypedParamBinder) binder.Name = param.Name binder.parameter = ¶m binder.formats = formats if param.In != "body" { binder.validator = validate.NewParamValidator(¶m, formats) } else { binder.validator = validate.NewSchemaValidator(param.Schema, spec, param.Name, formats) } return binder }
func TestIssue53(t *testing.T) { fp := filepath.Join("..", "fixtures", "bugs", "53", "noswagger.json") jstext, _ := ioutil.ReadFile(fp) // as json schema var sch spec.Schema if assert.NoError(t, json.Unmarshal(jstext, &sch)) { validator := intvalidate.NewSchemaValidator(spec.MustLoadSwagger20Schema(), nil, "", strfmt.Default) res := validator.Validate(&sch) assert.False(t, res.IsValid()) assert.EqualError(t, res.Errors[0], ".swagger in body is required") } // as swagger spec doc, err := spec.JSONSpec(fp) if assert.NoError(t, err) { validator := intvalidate.NewSpecValidator(doc.Schema(), strfmt.Default) res, _ := validator.Validate(doc) if assert.False(t, res.IsValid()) { assert.EqualError(t, res.Errors[0], ".swagger in body is required") } } }