- Notifications
You must be signed in to change notification settings - Fork710
New Services Quick Start
Chris Martinez edited this pageDec 29, 2022 ·12 revisions
When a service author creates new services that consider API versioning upfront, then the configuration and setup is very straightforward. The following examples provide a quick start setup for the respective platforms with default configurations.
API versions can be expressed with .NET attributes or by configured conventions. These examples all use .NET attributes. If you're interested in using conventions instead, please review theAPI version conventions topic.
publicstaticclassWebApiConfig{publicstaticvoidConfiguration(HttpConfigurationconfiguration){configuration.AddApiVersioning();// remaining configuration omitted for brevity}}
[ApiVersion(1.0)][RoutePrefix("People")]publicclassPeopleController:ApiController{[Route]publicIHttpActionResultGet()=>Ok(new[]{newPerson()});}
publicstaticclassWebApiConfig{publicstaticvoidConfiguration(HttpConfigurationconfiguration){configuration.AddApiVersioning();varmodelBuilder=newVersionedODataModelBuilder(configuration){DefaultModelConfiguration=(builder,apiVersion,routePrefix)=>{builder.EntitySet<Person>("People");}};configuration.MapVersionedODataRoutes("odata",null,modelBuilder);// remaining configuration omitted for brevity}}
[ApiVersion(1.0)][ODataRoutePrefix("People")]publicclassPeopleController:ODataController{[EnableQuery][ODataRoute]publicIHttpActionResultGet()=>Ok(new[]{newPerson()});}
varbuilder=WebApplication.CreateBuilder(args);builder.Services.AddProblemDetails();builder.Services.AddApiVersioning();varapp=builder.Build();varpeople=app.NewVersionedApi();people.MapGet("/people",()=>new[]{newPerson()}).HasApiVersion(1.0);app.Run();
[ApiVersion(1.0)][ApiController][Route("[controller]")]publicclassPeopleController:ControllerBase{[HttpGet]publicIActionResultGet()=>Ok(new[]{newPerson()});}
varbuilder=WebApplication.CreateBuilder(args);builder.Services.AddControllers();builder.Services.AddProblemDetails();builder.Services.AddApiVersioning().AddMvc();varapp=builder.Build();app.MapControllers();app.Run();
[ApiVersion(1.0)]publicclassPeopleController:ODataController{[EnableQuery]publicIActionResultGet()=>Ok(new[]{newPerson()});}
varbuilder=WebApplication.CreateBuilder(args);builder.Services.AddControllers().AddOData();builder.Services.AddProblemDetails();builder.Services.AddApiVersioning().AddOData( options=>{options.ModelBuilder.DefaultModelConfiguration=(builder,apiVersion,routePrefix)=>{builder.EntitySet<Person>("People");};options.AddRouteComponents();});varapp=builder.Build();app.MapControllers();app.Run();
- Home
- Quick Starts
- Version Format
- Version Discovery
- Version Policies
- How to Version Your Service
- API Versioning with OData
- Configuring Your Application
- Error Responses
- API Documentation
- Extensions and Customizations
- Known Limitations
- FAQ
- Examples