README ¶
Swagger Schema Validation
This packages provides functionality for validate http responses, including body schema against a swagger definition using go-swagger library.
Open Banking Specs
Setup
This package uses flattened version of Open Banking API specs, you will the swaggger
CLI tool from:
https://goswagger.io/install.html
To flatten a spec use command:
swagger flatten --with-expand -o account-info-swagger.flattened.json account-info-swagger.json
Usage
This package is a wrapper around swagger library validator with adicional status code and content type check, also allowing implementing other custom validator and version variations.
func main() {
v, err := NewSwaggerValidator("https://raw.githubusercontent.com/OpenBankingUK/read-write-api-specs/v3.1.0/dist/account-info-swagger.json")
if err != nil {
panic(err)
}
failures, err := v.Validate(r)
if err != nil {
panic(err)
}
fmt.Printf("Validation failures found:\n%v", failures)
}
Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrNotFound = errors.New("operation for method/path not found")
Functions ¶
func CheckRequestSchema ¶ added in v1.2.0
func CheckRequestSchema()
func NewNullValidator ¶
func NewNullValidator() nullValidator
Types ¶
type Matcher ¶
Matcher exposes a path comparison interface Expected usage to compare a path that has placeholder and a real path. Ex: /accounts/{account_id} == /accounts/1234567890
func NewMatcher ¶
func NewMatcher() Matcher
type Validator ¶
type Validator interface { Validate(Response) ([]Failure, error) IsRequestProperty(method, path, propertpath string) (bool, string, error) }
Validator validates a HTTP response object against a schema
func NewSwaggerValidator ¶
NewSwaggerValidator returns a swagger validator implementation Takes a schema file path as source, can be remote http(s) or local