Skip to content

Latest commit

 

History

History
48 lines (35 loc) · 1.63 KB

README.md

File metadata and controls

48 lines (35 loc) · 1.63 KB

jsonapivalidator Build Status GoDoc

A validator that determines whether arbitrary JSON payloads are in compliance with the JSON API specification. If the JSON is not compliant this validator will indicate the reason why.

This validator has been written in Go, but it is easy to use it in a Javascript environment thanks to GopherJS; see github.com/aren55555/corroborate for a working JS implementation.

Installation

go get -u github.com/aren55555/jsonapivalidator

Examples

Valid JSON API Payload

req, err := http.DefaultClient.Get("https://raw.githubusercontent.com/aren55555/jsonapivalidator/master/test/samples/valid/default.json")

result, err := jsonapivalidator.UnmarshalAndValidate(req.Body)
if err != nil {
  panic(err)
}

if result.IsValid() {
  fmt.Println("The JSON sample was valid!")
}

Invalid JSON API Payload

req, err = http.DefaultClient.Get("https://raw.githubusercontent.com/aren55555/jsonapivalidator/master/test/samples/invalid/default.json")

result, err = jsonapivalidator.UnmarshalAndValidate(req.Body)
if err != nil {
  panic(err)
}

fmt.Println("Errors:")
for i, err := range result.Errors() {
  fmt.Println("\t", i, err)
}

fmt.Println("Warnings:")
for i, err := range result.Warnings() {
  fmt.Println("\t", i, err)
}