Cvičení – povolení dokumentace OpenAPI v aplikaci ASP.NET Core Web API
Vaše společnost používá rozhraní API s názvem PrintFramerAPI, které vypočítá cenu zarámování obrazu podle rozměrů rámu. Váš malý tým interně ví, jak používat rozhraní API. Pokud ale chcete rozhraní API přijmout třetími stranami, a proto ho potřebujete zdokumentovat. APIT je rozhraní API ASP.NET Core, takže se rozhodnete zpřístupnit dokumentaci k rozhraní API prostřednictvím OpenAPI.
V tomto cvičení zdokumentujete webové rozhraní API ASP.NET Core s OpenAPI a vyzkoušíte si Swagger UI a Swashbuckle v reálném příkladu. Nejdřív vytvoříte projekt webového rozhraní API ASP.NET Core.
Poznámka:
Tento modul používá rozhraní příkazového řádku .NET (rozhraní příkazového řádku) a Visual Studio Code pro místní vývoj. Po dokončení tohoto modulu můžete použít své koncepty pomocí vývojového prostředí, jako je Visual Studio (Windows), Visual Studio pro Mac (macOS) nebo pokračování ve vývoji pomocí editoru Visual Studio Code (Windows, Linux a macOS).
Stažení ukázkového projektu webového rozhraní API do editoru Visual Studio Code
Otevřete novou instanci nástroje Visual Studio Code.
Vyberte Zobrazit a pak vyberte Terminál , aby se otevřelo okno terminálu.
(Volitelné) Přejděte do adresáře, do kterého chcete soubory zkopírovat, například
c:\MyProjects
.Pokud chcete naklonovat ukázkový projekt webového rozhraní API z GitHubu, spusťte v okně terminálu následující
git clone
příkaz.git clone https://github.com/MicrosoftDocs/mslearn-improve-api-developer-experience-with-swagger && cd mslearn-improve-api-developer-experience-with-swagger/PrintFramerAPI
Otevřete projekt v editoru Visual Studio Code pomocí následujícího příkazu terminálu.
code -a .
První spuštění webového rozhraní API
V okně terminálu editoru Visual Studio Code zadejte následující příkaz:
dotnet run
Po dokončení výstupu příkazu přejděte na:
http://localhost:5000/api/priceframe/6/17
Když na adresu přejdete v prohlížeči, měla by se zobrazit zpráva
The cost of a 6x17 frame is $20.00
.
Vzhledem k tomu, že jste rozhraní API vytvořili, znali jste jeho tvar, ale externí vývojář, který chce toto rozhraní API využívat, by nebyl tak šťastný. Těmto vývojářům můžete pomoct zveřejněním dokumentace k rozhraní API pomocí OpenAPI pomocí Swashbuckle, opensourcové verze nástrojů Swagger.
Přidání knihovny Swaggeru do řešení
Spuštěním
dotnet add package
příkazu přidejte do projektu Swashbuckle.dotnet add package Swashbuckle.AspNetCore
Otevřete soubor Startup.cs.
Na začátek souboru přidejte další položku using:
using Microsoft.OpenApi.Models;
Pokud chcete do kolekce služeb přidat generátor Swagger, nahraďte metodu
ConfigureServices(IServiceCollection services)
následující implementací.public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); }); }
V metodě
Configure
v souboru Startup.cs povolte middleware pro Swagger UI tak, že přidáteuseSwagger
auseSwaggerUI
, jak to demonstruje následující fragment kódu.public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
Uložte změny v editoru.
Pokud chcete zobrazit změny, spusťte ASP.NET aplikaci místně. V okně terminálu v editoru Visual Studio Code zadejte následující příkaz:
dotnet run
V prohlížeči přejděte na
http://localhost:5000/swagger/v1/swagger.json
.Odpověď v prohlížeči je tentokrát dokument popisující koncové body rozhraní API, podobně jako následující odpověď.