Documentation
¶
Index ¶
- Constants
- func GetValidatorForOpenAPI3Schema(oaiSchema *Schema, components *ComponentsForValidation) (*jsval.JSVal, error)
- type Components
- type ComponentsForValidation
- type ExpansionResources
- type Fixtures
- type HTTPVerb
- type Info
- type MediaType
- type Operation
- type Parameter
- type Path
- type RequestBody
- type ResourceID
- type Response
- type Schema
- type Spec
- type StatusCode
Constants ¶
const ( ParameterPath = "path" ParameterQuery = "query" )
A set of constants for the different types of possible OpenAPI parameters.
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 Info ¶ added in v0.48.0
type Info struct {
// Version is the Stripe API version represented in the specification. It
// takes a date-based form like `2019-02-19`.
Version string `json:"version"`
}
Info is the `info` portion of an OpenAPI specification that contains meta information about it.
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 BuildQuerySchema ¶ added in v0.30.0
BuildQuerySchema builds a JSON schema that will be used to validate query parameters on the incoming request. Unlike request bodies, OpenAPI puts query parameters in a different, non-JSON schema part of an operation.
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"`
Info *Info `json:"info"`
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.