middleware

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 29, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ProvidesResourceLocationHeader

func ProvidesResourceLocationHeader(provider LocationHeaderProvider) jsonapi.Middleware

ProvidesResourceLocationHeader returns a middleware that provides the location header for a newly created resource node.

func ResolvesFieldsetParams

func ResolvesFieldsetParams() jsonapi.Middleware

ResolvesFieldsetParams resolves the fieldset parameters from the request using the default fieldset query parser.

func ResolvesFieldsetParamsWithParser

func ResolvesFieldsetParamsWithParser(parser FieldsetQueryParser) jsonapi.Middleware

ResolvesFieldsetParamsWithParser resolves the fieldset parameters from the request.

func ResolvesFilterParams

func ResolvesFilterParams() jsonapi.Middleware

ResolvesFilterParams returns a middleware uses the default parser to extract filter query parameters, adding it to the request context.

func ResolvesFilterParamsWithParser

func ResolvesFilterParamsWithParser(parser FilterQueryParser) jsonapi.Middleware

ResolvesFilterParamsWithParser returns a middleware that uses the provided parser to parse the filter query parameter, adding it to the request context.

func ResolvesIncludedResources

func ResolvesIncludedResources() mux.Options

ResolvesIncludedResources adds middleware that resolves client include requests.

func ResolvesRelatedResources

func ResolvesRelatedResources() mux.Options

ResolvesRelatedResources adds middleware that resolves related resource requests.

func ResolvesSortParams

func ResolvesSortParams() jsonapi.Middleware

ResolvesSortParams resolves the sort parameters from the request using the default sort query parser.

func ResolvesSortParamsWithParser

func ResolvesSortParamsWithParser(parser SortQueryParser) jsonapi.Middleware

ResolvesSortParamsWithParser resolves the sort parameters from the request.

Types

type FieldsetQueryParser

type FieldsetQueryParser interface {
	// ParseFieldsetQuery parses the fieldset query parameters from the request.
	ParseFieldsetQuery(r *http.Request) ([]query.Fieldset, error)
}

FieldsetQueryParser is a function that parses the fieldset query parameters.

type FilterQueryParser

type FilterQueryParser interface {
	// ParseFilterQuery parses the filter query parameter from the request.
	ParseFilterQuery(*http.Request) (query.FilterExpression, error)
}

FilterQueryParser is a parser for JSON:API filter query parameters.

type IncludeResolverMiddleware

type IncludeResolverMiddleware struct {
	Router
}

IncludeResolverMiddleware is a middleware that resolves included resources.

func (IncludeResolverMiddleware) Middleware

Middleware returns the middleware function.

type LocationHeaderProvider

type LocationHeaderProvider interface {
	// LocationHeader returns the location header for the provided resource node.
	LocationHeader(*jsonapi.Resource) string
}

LocationHeaderProvider provides a location header for a resource node.

type LocationProviderFunc

type LocationProviderFunc func(*jsonapi.Resource) string

LocationProviderFunc is a function that returns a location header for a resource node.

func DefaultLocationProvider

func DefaultLocationProvider(baseURL string) LocationProviderFunc

DefaultLocationProvider returns a default location provider that uses the provided base URL and JSONAPI URL resolver to generate a Location header in responses. Given a base url https://api.example.com with resource type "users" and id "123" the location header will be:

"https://api.example.com/users/123"

func (LocationProviderFunc) LocationHeader

func (f LocationProviderFunc) LocationHeader(node *jsonapi.Resource) string

LocationHeader returns the location header for the provided resource node.

type RelatedResourceResolverMiddleware

type RelatedResourceResolverMiddleware struct {
	Router
}

RelatedResourceResolverMiddleware is a middleware that resolves related resources.

type Router

type Router interface {
	RouteJSONAPI(*jsonapi.RequestContext, *http.Request) jsonapi.Response
}

type SortQueryParser

type SortQueryParser interface {
	// ParseSortQuery parses the sort query parameters from the request.
	ParseSortQuery(*http.Request) ([]query.Sort, error)
}

SortQueryParser is used to parse sort query parameters.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL