Documentation ¶
Index ¶
- Constants
- func GetValidatorForOpenAPI3Schema(oaiSchema *Schema, components *ComponentsForValidation) (*jsval.JSVal, error)
- type Components
- type ComponentsForValidation
- type ExpansionResources
- type Fixtures
- type HTTPVerb
- type MediaType
- type Operation
- type Parameter
- type Path
- type RequestBody
- type ResourceID
- type Response
- type Schema
- type Spec
- type StatusCode
Constants ¶
const ( TypeArray = "array" TypeBoolean = "boolean" TypeInteger = "integer" TypeNumber = "number" TypeObject = "object" TypeString = "string" )
A set of constant for the named types available in JSON Schema.
Variables ¶
This section is empty.
Functions ¶
func GetValidatorForOpenAPI3Schema ¶
func GetValidatorForOpenAPI3Schema(oaiSchema *Schema, components *ComponentsForValidation) (*jsval.JSVal, error)
GetValidatorForOpenAPI3Schema gets a JSON Schema validator for a given OpenAPI specification and set of JSON Schema components.
Types ¶
type Components ¶
Components is a struct for the components section of an OpenAPI specification.
type ComponentsForValidation ¶
type ComponentsForValidation struct {
// contains filtered or unexported fields
}
ComponentsForValidation is a collection of components for an OpenAPI specification that's been translated into equivalent JSON Schemas.
func GetComponentsForValidation ¶
func GetComponentsForValidation(components *Components) *ComponentsForValidation
GetComponentsForValidation translates a collection of components for an OpenAPI specification into equivalent JSON schemas.
See also the comment on getJSONSchemaForOpenAPI3Schema.
type ExpansionResources ¶
type ExpansionResources struct {
OneOf []*Schema `json:"oneOf"`
}
ExpansionResources is a struct for possible expansions in a resource.
type Fixtures ¶
type Fixtures struct {
Resources map[ResourceID]interface{} `json:"resources"`
}
Fixtures is a struct for a set of companion fixtures for an OpenAPI specification.
type MediaType ¶
type MediaType struct {
Schema *Schema `json:"schema"`
}
MediaType is a struct bucketing a request or response by media type in an OpenAPI specification.
type Operation ¶
type Operation struct { Description string `json:"description"` OperationID string `json:"operation_id"` Parameters []*Parameter `json:"parameters"` RequestBody *RequestBody `json:"requestBody"` Responses map[StatusCode]Response `json:"responses"` }
Operation is a struct representing a possible HTTP operation in an OpenAPI specification.
type Parameter ¶
type Parameter struct { Description string `json:"description"` In string `json:"in"` Name string `json:"name"` Required bool `json:"required"` Schema *Schema `json:"schema"` }
Parameter is a struct representing a request parameter to an HTTP operation in an OpenAPI specification.
type RequestBody ¶
type RequestBody struct { Content map[string]MediaType `json:"content"` Required bool `json:"required"` }
RequestBody is a struct representing the body of a request in an OpenAPI specification.
type ResourceID ¶
type ResourceID string
ResourceID is a type for the ID of a response resource in an OpenAPI specification.
type Response ¶
type Response struct { Description string `json:"description"` Content map[string]MediaType `json:"content"` }
Response is a struct representing the response of an HTTP operation in an OpenAPI specification.
type Schema ¶
type Schema struct { // AdditionalProperties is either a `false` to indicate that no additional // properties in the object are allowed (beyond what's in Properties), or a // JSON schema that describes the expected format of any additional properties. // // We currently just read it as an `interface{}` because we're not using it // for anything right now. AdditionalProperties interface{} `json:"additionalProperties,omitempty"` AnyOf []*Schema `json:"anyOf,omitempty"` Enum []interface{} `json:"enum,omitempty"` Format string `json:"format,omitempty"` Items *Schema `json:"items,omitempty"` MaxLength int `json:"maxLength,omitempty"` Nullable bool `json:"nullable,omitempty"` Pattern string `json:"pattern,omitempty"` Properties map[string]*Schema `json:"properties,omitempty"` Required []string `json:"required,omitempty"` Type string `json:"type,omitempty"` // Ref is populated if this JSON Schema is actually a JSON reference, and // it defines the location of the actual schema definition. Ref string `json:"$ref,omitempty"` XExpandableFields *[]string `json:"x-expandableFields,omitempty"` XExpansionResources *ExpansionResources `json:"x-expansionResources,omitempty"` XResourceID string `json:"x-resourceId,omitempty"` }
Schema is a struct representing a JSON schema.
func (*Schema) UnmarshalJSON ¶
UnmarshalJSON is a custom JSON unmarshaling implementation for Schema that provides better error messages instead of silently ignoring fields.
type Spec ¶
type Spec struct { Components Components `json:"components"` Paths map[Path]map[HTTPVerb]*Operation `json:"paths"` }
Spec is a struct representing an OpenAPI specification.
type StatusCode ¶
type StatusCode string
StatusCode is a type for the response status code of an HTTP operation in an OpenAPI specification.