Documentation ¶
Overview ¶
Package negotiation contains media type negotiation logic.
Index ¶
- Variables
- func MediaTypesForSerializer(ns runtime.NegotiatedSerializer) (mediaTypes, streamMediaTypes []string)
- func NegotiateInputSerializer(req *http.Request, streaming bool, ns runtime.NegotiatedSerializer) (runtime.SerializerInfo, error)
- func NegotiateInputSerializerForMediaType(mediaType string, streaming bool, ns runtime.NegotiatedSerializer) (runtime.SerializerInfo, error)
- func NegotiateOutputMediaTypeStream(req *http.Request, ns runtime.NegotiatedSerializer, ...) (runtime.SerializerInfo, error)
- func NewNotAcceptableConversionError(target string, accepted []string) error
- func NewNotAcceptableError(accepted []string) error
- func NewUnsupportedMediaTypeError(accepted []string) error
- type EndpointRestrictions
- type MediaTypeOptions
Constants ¶
This section is empty.
Variables ¶
var DefaultEndpointRestrictions = emptyEndpointRestrictions{}
DefaultEndpointRestrictions is the default EndpointRestrictions which allows content-type negotiation to verify server support for specific options
Functions ¶
func MediaTypesForSerializer ¶
func MediaTypesForSerializer(ns runtime.NegotiatedSerializer) (mediaTypes, streamMediaTypes []string)
MediaTypesForSerializer returns a list of media and stream media types for the server.
func NegotiateInputSerializer ¶
func NegotiateInputSerializer(req *http.Request, streaming bool, ns runtime.NegotiatedSerializer) (runtime.SerializerInfo, error)
NegotiateInputSerializer returns the input serializer for the provided request.
func NegotiateInputSerializerForMediaType ¶
func NegotiateInputSerializerForMediaType(mediaType string, streaming bool, ns runtime.NegotiatedSerializer) (runtime.SerializerInfo, error)
NegotiateInputSerializerForMediaType returns the appropriate serializer for the given media type or an error.
func NegotiateOutputMediaTypeStream ¶
func NegotiateOutputMediaTypeStream(req *http.Request, ns runtime.NegotiatedSerializer, restrictions EndpointRestrictions) (runtime.SerializerInfo, error)
NegotiateOutputMediaTypeStream returns a stream serializer for the given request.
func NewNotAcceptableConversionError ¶
NewNotAcceptableConversionError returns an error indicating that the desired API transformation to the target group version kind string is not accepted and only the listed mime types are allowed. This is temporary while Table does not yet support protobuf encoding.
func NewNotAcceptableError ¶
NewNotAcceptableError returns an error of NotAcceptable which contains specified string
func NewUnsupportedMediaTypeError ¶
NewUnsupportedMediaTypeError returns an error of UnsupportedMediaType which contains specified string
Types ¶
type EndpointRestrictions ¶
type EndpointRestrictions interface { // AllowsMediaTypeTransform returns true if the endpoint allows either the requested mime type // or the requested transformation. If false, the caller should ignore this mime type. If the // target is nil, the client is not requesting a transformation. AllowsMediaTypeTransform(mimeType, mimeSubType string, target *schema.GroupVersionKind) bool // AllowsServerVersion should return true if the specified version is valid // for the server group. AllowsServerVersion(version string) bool // AllowsStreamSchema should return true if the specified stream schema is // valid for the server group. AllowsStreamSchema(schema string) bool }
EndpointRestrictions is an interface that allows content-type negotiation to verify server support for specific options
type MediaTypeOptions ¶
type MediaTypeOptions struct { // pretty is true if the requested representation should be formatted for human // viewing Pretty bool // stream, if set, indicates that a streaming protocol variant of this encoding // is desired. The only currently supported value is watch which returns versioned // events. In the future, this may refer to other stream protocols. Stream string // convert is a request to alter the type of object returned by the server from the // normal response Convert *schema.GroupVersionKind // useServerVersion is an optional version for the server group UseServerVersion string // export is true if the representation requested should exclude fields the server // has set Export bool // unrecognized is a list of all unrecognized keys Unrecognized []string // the accepted media type from the client Accepted runtime.SerializerInfo }
MediaTypeOptions describes information for a given media type that may alter the server response
func NegotiateMediaTypeOptions ¶
func NegotiateMediaTypeOptions(header string, accepted []runtime.SerializerInfo, endpoint EndpointRestrictions) (MediaTypeOptions, bool)
NegotiateMediaTypeOptions returns the most appropriate content type given the accept header and a list of alternatives along with the accepted media type parameters.
func NegotiateOutputMediaType ¶
func NegotiateOutputMediaType(req *http.Request, ns runtime.NegotiatedSerializer, restrictions EndpointRestrictions) (MediaTypeOptions, runtime.SerializerInfo, error)
NegotiateOutputMediaType negotiates the output structured media type and a serializer, or returns an error.