C# Academy · Lektion

Konfiguration af Asp.Versioning

Opsæt versionering i ASP.NET Core.

Lektion 2 af 413 trin

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.ApiExplorer

AddApiVersioning

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.0

Valg 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:

  • AddApiVersioning angiver standardversionen og rapporteringen.
  • ApiVersionReader.Combine læ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.

Gratis at komme i gang

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

  1. Strategier for API-versionering
  2. Konfiguration af Asp.Versioning
  3. Generering af OpenAPI-dokumenter
  4. Dokumentation af versionerede API'er
← Tilbage til C# Academy