C# Academy · Oppitunti

Asp.Versioningin määrittäminen

Määrittäkää versiointi ASP.NET Coreen.

Oppitunti 2/413 vaihetta

Asp.Versioningin määrittäminen on ilmainen C# Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C# Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C# Academy-kurssilla on yhteensä 4 oppituntia.

Asp.Versioning-paketti

ASP.NET Coren API-versiointi toteutetaan yhteisön ylläpitämissä Asp.Versioning-paketeissa, jotka ovat Microsoft.AspNetCore.Mvc.Versioningin seuraaja.

dotnet add package Asp.Versioning.Mvc
dotnet add package Asp.Versioning.Mvc.ApiExplorer

AddApiVersioning

Rekisteröi versiointi AddApiVersioning-metodilla. Asetukset määrittävät oletusversion ja puuttuvien versioiden käsittelyn.

builder.Services.AddApiVersioning(options =>
{
    options.DefaultApiVersion = new ApiVersion(1, 0);
    options.AssumeDefaultVersionWhenUnspecified = true;
    options.ReportApiVersions = true;
});

ReportApiVersions

ReportApiVersions = true lisää vastauksen otsakkeet api-supported-versions ja api-deprecated-versions, jotta asiakkaat voivat selvittää, mitä versioita on saatavilla.

// Response headers:
// api-supported-versions: 1.0, 2.0
// api-deprecated-versions: 1.0

Versiolukijan valitseminen

ApiVersionReader määrittää, mistä versio luetaan. UrlSegmentApiVersionReader lukee version reitin polusta.

options.ApiVersionReader = new UrlSegmentApiVersionReader();

Lukijoiden yhdistäminen

Hyväksy versio useasta paikasta yhtä aikaa käyttämällä ApiVersionReader.Combine-metodia.

options.ApiVersionReader = ApiVersionReader.Combine(
    new UrlSegmentApiVersionReader(),
    new HeaderApiVersionReader("X-Api-Version"),
    new QueryStringApiVersionReader("api-version"));

API Explorerin lisääminen

Ketjuta AddApiExplorer, jotta versiointi integroidaan OpenAPIen. Muotoilumerkkijono määrittää, miltä versioryhmien nimet näyttävät.

builder.Services
    .AddApiVersioning(options => { /* ... */ })
    .AddApiExplorer(options =>
    {
        options.GroupNameFormat = "'v'VVV";
        options.SubstituteApiVersionInUrl = true;
    });

Ohjaimen versiointi

Merkitse ohjain attribuutilla [ApiVersion] ja lisää version paikkamerkki reittimalliin.

[ApiVersion(1.0)]
[Route("api/v{version:apiVersion}/products")]
public class ProductsV1Controller : ControllerBase
{
    [HttpGet]
    public IActionResult Get() => Ok(new { version = "1.0" });
}

Toinen versio

Erillinen ohjain palvelee versiota v2 samassa reittimallissa. Segmentti {version:apiVersion} reitittää pyynnöt oikealle ohjaimelle.

[ApiVersion(2.0)]
[Route("api/v{version:apiVersion}/products")]
public class ProductsV2Controller : ControllerBase
{
    [HttpGet]
    public IActionResult Get() =>
        Ok(new { version = "2.0", extra = true });
}

Useita versioita yhdessä ohjaimessa

Yksi ohjain voi palvella useita versioita, kun yksittäiset toiminnot kohdistetaan attribuutilla [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");
}

Version merkitseminen vanhentuneeksi

Merkitse versio vanhentuneeksi ilmoittaaksesi sen käytöstä poistamisesta ja pidä se samalla toimivana.

[ApiVersion(1.0, Deprecated = true)]
[ApiVersion(2.0)]
[Route("api/v{version:apiVersion}/products")]
public class ProductsController : ControllerBase { }

Minimal API -rajapintojen versiointi

Minimal API -rajapinnoissa käytetään versiojoukkoa, joka luodaan komennolla NewApiVersionSet. Sen jälkeen versiot liitetään päätepisteisiin.

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);

Pikatarkistus

Varmista, mihin AddApiExploreria käytetään.

Kertaus

Määritit Asp.Versioningin asetukset:

  • AddApiVersioning määrittää oletusversion ja raportoinnin.
  • ApiVersionReader.Combine lukee versiot URL-osoitteesta, otsakkeesta tai kyselyparametrista.
  • [ApiVersion] ja {version:apiVersion} reitittävät pyynnöt, ja [MapToApiVersion] kohdistaa ne toimintoihin.
  • Minimal API -rajapinnoissa käytetään versiojoukkoa.

Seuraavaksi: OpenAPI-dokumenttien luominen.

Aloita maksutta

Opi C# tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
93
Oppitunnit
346

Usein kysytyt kysymykset

Onko oppitunti ”Asp.Versioningin määrittäminen” ilmainen?

Kyllä – oppitunnin ”Asp.Versioningin määrittäminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C# Academy-kurssin, päivitä CoddyKit PROhon. C# Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Asp.Versioningin määrittäminen”?

Määrittäkää versiointi ASP.NET Coreen. Harjoittelet C# Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni C# Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin C# Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Asp.Versioningin määrittäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä C# Academy-oppitunnilla?

Kyllä. Jokainen C# Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. API-versiointistrategiat
  2. Asp.Versioningin määrittäminen
  3. OpenAPI-dokumenttien luonti
  4. Versioitujen API-rajapintojen dokumentointi
← Takaisin: C# Academy