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 Versioning with OData

Chris Martinez edited this pageDec 29, 2022 ·9 revisions

Service API versioning using OData is similar to the normal configuration with a few slight variations. Each implemented OData controller has an associated entity set and each entity set is defined in an Entity Data Model (EDM). Once we introduce API versioning, each versioned OData controller now needs an EDM per API version. To satisfy this requirement, we'll use the newVersionedODataModelBuilder, build a collection of EDMs for each API version, and then map a set of routes for them.

ASP.NET Web API and OData with OWIN

publicclassStartup{publicvoidConfiguration(IAppBuilderappBuilder){varconfiguration=newHttpConfiguration();varhttpServer=newHttpServer(configuration);configuration.AddApiVersioning();varmodelBuilder=newVersionedODataModelBuilder(configuration){ModelConfigurations={newPersonModelConfiguration()}};configuration.MapVersionedODataRoute("odata","api",modelBuilder);appBuilder.UseWebApi(httpServer);}}

ASP.NET Core and OData

varbuilder=WebApplication.CreateBuilder(args);builder.Services.AddControllers().AddOData();builder.Services.AddProblemDetails();builder.Services.AddApiVersioning().AddOData( options=>options.AddRouteComponents("api"));varapp=builder.Build();app.MapControllers();app.Run();

It is possible to imperatively use:

.AddOData( options=>options.ModelConfigurations.Add(newPersonModelConfiguration()))

however, it is typically unnecessary because this will automatically happen via dependency injection.

Important: CallingAddControllers().AddOData( options => options.AddRouteComponents( ... ) ) will be completely ignored by API Versioning. Due to the OData design, it is impossible to extend or customize this behavior. Instead, you need to useAddApiVersioning().AddOData( options => options.AddRouteComponents( ... ) ). The standardAddOData configuration can still be used to configure global query option settings.

Clone this wiki locally

[8]ページ先頭

©2009-2025 Movatter.jp