Konfiguration af Asp.Versioning
Opsæt versionering i ASP.NET Core.
Konfiguration af Asp.Versioning er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 4 lektioner i alt.
Pakken Asp.Versioning
API-versionering i ASP.NET Core findes i de community-vedligeholdte pakker Asp.Versioning (efterfølgeren til Microsoft.AspNetCore.Mvc.Versioning).
dotnet add package Asp.Versioning.Mvc
dotnet add package Asp.Versioning.Mvc.ApiExplorerAddApiVersioning
Registrér versionering med AddApiVersioning. Indstillingerne styrer standardversionen og håndteringen af manglende versioner.
builder.Services.AddApiVersioning(options =>
{
options.DefaultApiVersion = new ApiVersion(1, 0);
options.AssumeDefaultVersionWhenUnspecified = true;
options.ReportApiVersions = true;
});ReportApiVersions
ReportApiVersions = true føjer svarheadere med api-supported-versions og api-deprecated-versions til, så klienter kan se, hvad der er tilgængeligt.
// Response headers:
// api-supported-versions: 1.0, 2.0
// api-deprecated-versions: 1.0Valg af versionslæser
ApiVersionReader bestemmer, hvor versionen læses fra. UrlSegmentApiVersionReader læser den fra rutestien.
options.ApiVersionReader = new UrlSegmentApiVersionReader();Kombination af læsere
Acceptér versionen fra flere steder på én gang med ApiVersionReader.Combine.
options.ApiVersionReader = ApiVersionReader.Combine(
new UrlSegmentApiVersionReader(),
new HeaderApiVersionReader("X-Api-Version"),
new QueryStringApiVersionReader("api-version"));Tilføjelse af API Explorer
Kæd AddApiExplorer på, så versionering integreres med OpenAPI. Formatstrengen styrer, hvordan versionsgruppenavne ser ud.
builder.Services
.AddApiVersioning(options => { /* ... */ })
.AddApiExplorer(options =>
{
options.GroupNameFormat = "'v'VVV";
options.SubstituteApiVersionInUrl = true;
});Versionering af en controller
Annotér en controller med [ApiVersion], og indsæt versionspladsholderen i ruteskabelonen.
[ApiVersion(1.0)]
[Route("api/v{version:apiVersion}/products")]
public class ProductsV1Controller : ControllerBase
{
[HttpGet]
public IActionResult Get() => Ok(new { version = "1.0" });
}En anden version
En separat controller leverer v2 på den samme ruteskabelon. Segmentet {version:apiVersion} dirigerer forespørgsler til den rigtige controller.
[ApiVersion(2.0)]
[Route("api/v{version:apiVersion}/products")]
public class ProductsV2Controller : ControllerBase
{
[HttpGet]
public IActionResult Get() =>
Ok(new { version = "2.0", extra = true });
}Flere versioner på én controller
En enkelt controller kan levere flere versioner, hvor individuelle handlinger tilknyttes med [MapToApiVersion].
[ApiVersion(1.0)]
[ApiVersion(2.0)]
[Route("api/v{version:apiVersion}/orders")]
public class OrdersController : ControllerBase
{
[HttpGet, MapToApiVersion(1.0)]
public IActionResult GetV1() => Ok("v1");
[HttpGet, MapToApiVersion(2.0)]
public IActionResult GetV2() => Ok("v2");
}Udfasning af en version
Markér en version som udfaset for at annoncere dens udfasningsdato, mens den stadig fungerer.
[ApiVersion(1.0, Deprecated = true)]
[ApiVersion(2.0)]
[Route("api/v{version:apiVersion}/products")]
public class ProductsController : ControllerBase { }Versionering af minimale API'er
Minimale API'er bruger et versionssæt, der oprettes med NewApiVersionSet, hvorefter versioner tilknyttes pr. slutpunkt.
var versionSet = app.NewApiVersionSet()
.HasApiVersion(new ApiVersion(1, 0))
.HasApiVersion(new ApiVersion(2, 0))
.Build();
app.MapGet("/api/v{version:apiVersion}/ping", () => "pong")
.WithApiVersionSet(versionSet)
.MapToApiVersion(2.0);Hurtigt tjek
Bekræft, hvad AddApiExplorer bruges til.
Opsummering
Du konfigurerede Asp.Versioning:
AddApiVersioningangiver standardversionen og rapporteringen.ApiVersionReader.Combinelæser versioner fra URL, header eller forespørgselsstreng.[ApiVersion]og{version:apiVersion}dirigerer forespørgsler;[MapToApiVersion]målretter handlinger.- Minimale API'er bruger et versionssæt.
Næste emne: generering af OpenAPI-dokumenter.
Lær C# med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 93
- Lektioner
- 346
Ofte stillede spørgsmål
Er lektionen “Konfiguration af Asp.Versioning” gratis?
Ja — hele teksten til “Konfiguration af Asp.Versioning” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Konfiguration af Asp.Versioning”?
Opsæt versionering i ASP.NET Core. Du øver dig i C# Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C# Academy?
Der kræves ingen tidligere erfaring. C# Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Konfiguration af Asp.Versioning”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C# Academy-lektion?
Ja. Alle C# Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Strategier for API-versionering
- Konfiguration af Asp.Versioning
- Generering af OpenAPI-dokumenter
- Dokumentation af versionerede API'er