Class JsonApiContentNegotiator
- Namespace
- JsonApiDotNetCore.Middleware
- Assembly
- JsonApiDotNetCore.dll
Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
public class JsonApiContentNegotiator : IJsonApiContentNegotiator
- Inheritance
-
JsonApiContentNegotiator
- Implements
- Inherited Members
Constructors
JsonApiContentNegotiator(IJsonApiOptions, IHttpContextAccessor)
public JsonApiContentNegotiator(IJsonApiOptions options, IHttpContextAccessor httpContextAccessor)
Parameters
options
IJsonApiOptionshttpContextAccessor
IHttpContextAccessor
Methods
GetPossibleMediaTypes()
Gets the list of possible combinations of JSON:API extensions that are available at the current endpoint. The set of extensions in the request body must always be the same as in the response body.
protected virtual IReadOnlyList<JsonApiMediaType> GetPossibleMediaTypes()
Returns
Remarks
Override this method to add support for custom JSON:API extensions. Implementations should take Extensions into account. During content negotiation, the first compatible entry with the highest number of extensions is preferred, but beware that clients can overrule this using quality factors in an Accept header.
IsOperationsEndpoint()
protected bool IsOperationsEndpoint()
Returns
Negotiate()
Validates the Content-Type and Accept HTTP headers from the incoming request. Throws a JsonApiException if unsupported. Otherwise, returns the list of negotiated JSON:API extensions, which should always be a subset of Extensions.
public IReadOnlySet<JsonApiMediaTypeExtension> Negotiate()