Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

API Version Reader

Chris Martinez edited this pageDec 30, 2022 ·8 revisions

TheIApiVersionReader interface defines the behavior of how an API version is read in its raw, unparsed form from the current HTTP request. There are multiple methods for reading an API version provided out-of-the-box or you can implement your own. The default, configured API version reader is a composed instance
QueryStringApiVersionReader andUrlSegmentApiVersionReader.

ASP.NET Web API

publicinterfaceIApiVersionReader{IReadOnlyList<string>Read(HttpRequestMessagerequest);}

ASP.NET Core

publicinterfaceIApiVersionReader{IReadOnlyList<string>Read(HttpRequestrequest);}

Query String API Version Reader

TheQueryStringApiVersionReader reads the requested API version from the requested query string. The default query string parameter name isapi-version. The constructor for this class accepts the name of a query string parameter so that an alternate query string parameter can be used.

// svc?api-version=2.0AddApiVersioning( options=>options.ApiVersionReader=newQueryStringApiVersionReader());
// svc?v=2.0AddApiVersioning( options=>options.ApiVersionReader=newQueryStringApiVersionReader("v"));

Header API Version Reader

TheHeaderApiVersionReader reads the requested API version from a HTTP request header. There is no default or standard HTTP header. You must define which HTTP header name or names contain the API version information. This method of API versioning does not conform to theMicrosoft REST Guidelines.

AddApiVersioning( options=>options.ApiVersionReader=newHeaderApiVersionReader("api-version"));

Media Type API Version Reader

TheMediaTypeApiVersionReader reads the requested API version from a HTTP media type request header. The supported headers areContent-Type andAccept. If both headers are present, thenContent-Type is preferred. If theAccept header specifies qualities, then the API version associated with the highest quality is selected. This behavior is independent of media type negotiation. The default media type parameter is"v", but you may specify an alternate name. This method of API versioning does not conform to theMicrosoft REST Guidelines; however, it is generally accepted as a fully REST-compliant method of versioning.

// Content-Type: application/json;v=2.0AddApiVersioning( options=>options.ApiVersionReader=newMediaTypeApiVersionReader());
// Content-Type: application/json;version=2.0AddApiVersioning( options=>options.ApiVersionReader=newMediaTypeApiVersionReader("version"));

TheMediaTypeApiVersionReaderBuilder is also available with additional features that allow:

  • Define multiple media type parameters
  • Mutually include specific media types
  • Mutually exclude specific media types
  • Match media types by template
  • Match media types by pattern
  • Disambiguate between multiple API versions
// Accept: application/json;v=2.0AddApiVersioning(    options=>{varbuilder=newMediaTypeApiVersionReaderBuilder();options.ApiVersionReader=builder.Parameter("v").Include("application/json").Build();});
// Accept: application/vnd.my.company.v1+jsonAddApiVersioning(    options=>{varbuilder=newMediaTypeApiVersionReaderBuilder();options.ApiVersionReader=builder.Template("application/vnd.my.company.v{version}+json").Build();});

API Version Reader Composition

MultipleIApiVersionReader implementations can be combined using composition instead of inheritance. For convenience, you can useApiVersionReader.Combine to compose multiple API version reading styles.

AddApiVersioning(    options=>options.ApiVersionReader=ApiVersionReader.Combine(newQueryStringApiVersionReader(),newHeaderApiVersionReader(){HeaderNames={"x-ms-api-version"}}));
Clone this wiki locally

[8]ページ先頭

©2009-2025 Movatter.jp