Comments (1)
So this might be what I'm looking for. I'll place this comment here and let the maintainer vet the ask. I need to be able to get err details (ie Context with path, etc) for custom format checkers especially when they fail, which apparently seems to cause err not to be nil, which is how I'm validating the formats in my custom checkers. For instance in my case:
// IsFormat for CIDRFormatChecker - custom format checker for CIDRs
// extending gojsonschema.FormatChecker
// https://github.com/xeipuuv/gojsonschema
func (f CIDRFormatChecker) IsFormat(input string) (validCIDR bool) {
validCIDR = false
_, _, err := net.ParseCIDR(input)
if err == nil {
validCIDR = true
}
return validCIDR
}
// IsFormat for SemVerFormatChecker - custom format checker for semantics version format
// extending gojsonschema.FormatChecker
// https://github.com/xeipuuv/gojsonschema
func (f SemVerFormatChecker) IsFormat(input string) (validSemVer bool) {
goodSemVer := false
_, ok := semver.Make(input)
if ok == nil {
goodSemVer = true
}
return goodSemVer
}
function JSONDataRespValidate(schemaFile, configFile string) (jsonOutput []byte, err error) {
...
result := newResult()
documentLoader := gojsonschema.NewReferenceLoader("file://" + configFile)
schemaLoader := gojsonschema.NewReferenceLoader("file://" + schemaFile)
validated, err := gojsonschema.Validate(schemaLoader, documentLoader)
if err != nil {
// would be AWESOME to get Details() or Context() IE a path here.
result.Exception = append(result.Exception, err.Error())
} else {
if validated.Valid() {
result.IsValid = true
} else {
for _, desc := range validated.Errors() {
e := errors.New(desc.String())
result.Exception = append(result.Exception, e.Error())
}
}
}
}
from gojsonschema.
Related Issues (20)
- Validation should fail if required key is Go Zero Value for the corresponding type
- gojsonschema.NewGoLoader() returns NOTHING
- validation mishandles anyOf
- Load schema from string HOT 1
- The validate cannot find unknow fields
- Retry on "Could not read schema from HTTP, response status is 503 Service Temporarily Unavailable" HOT 2
- Validate return err on golang 1.19 HOT 1
- A DOS vulnerability exists in parameter validity check. HOT 3
- can we create json schema from json data HOT 1
- Using Frogbot to scan this repository
- Get all properties under a section
- Wrong validation result for nested objects HOT 2
- Usage of gojsonschema in prominent open-source or large-scale projects?
- Validation errors with integers
- Error "Must be a multiple of 0.01" for Value=2000000.13
- Hostname format false positives
- Support `errorMessage` so as to customise validation errors
- major api improvement HOT 2
- invalid character '{{character}}' looking for beginning of value
- Schema validation does not return error for invalid schema definition
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gojsonschema.