Ćwiczenie — włączanie dokumentacji interfejsu OpenAPI w aplikacji internetowego interfejsu API platformy ASP.NET Core
Twoja firma ma interfejs API o nazwie PrintFramerAPI, który oblicza koszt ramki na podstawie jej wymiarów. Wewnętrznie mały zespół wie, jak używać interfejsu API. Jednak aby interfejs API został przyjęty przez inne firmy i w związku z tym prowadzić działalność biznesową, należy go udokumentować. Interfejs APIT to interfejs API platformy ASP.NET Core, dlatego decydujesz się na uwidocznienie dokumentacji interfejsu API za pośrednictwem interfejsu OpenAPI.
W tym ćwiczeniu udokumentowasz internetowy interfejs API platformy ASP.NET Core za pomocą interfejsu OpenAPI i wypróbujesz interfejs użytkownika struktury Swagger i pakiet Swashbuckle w rzeczywistym przykładzie. Najpierw utwórzmy projekt internetowego interfejsu API platformy ASP.NET Core.
Uwaga
W tym module używany jest interfejs wiersza polecenia platformy .NET (interfejs wiersza polecenia) i program Visual Studio Code na potrzeby programowania lokalnego. Po ukończeniu tego modułu możesz zastosować swoje pojęcia przy użyciu środowiska programistycznego, takiego jak Visual Studio (Windows), Visual Studio dla komputerów Mac (macOS) lub ciągłego programowania przy użyciu programu Visual Studio Code (Windows, Linux i macOS).
Pobieranie przykładowego projektu internetowego interfejsu API do programu Visual Studio Code
Otwórz nowe wystąpienie programu Visual Studio Code.
Wybierz pozycję Widok, a następnie wybierz pozycję Terminal , aby otworzyć okno terminalu.
(Opcjonalnie) Przejdź do katalogu, do którego chcesz skopiować pliki, na przykład
c:\MyProjects
.Aby sklonować przykładowy projekt internetowego interfejsu API z usługi GitHub, uruchom następujące
git clone
polecenie w oknie terminalu.git clone https://github.com/MicrosoftDocs/mslearn-improve-api-developer-experience-with-swagger && cd mslearn-improve-api-developer-experience-with-swagger/PrintFramerAPI
Otwórz projekt w programie Visual Studio Code za pomocą następującego polecenia terminalu.
code -a .
Uruchamianie internetowego interfejsu API po raz pierwszy
Wpisz następujące polecenie w oknie terminalu programu Visual Studio Code:
dotnet run
Po zakończeniu wykonywania danych wyjściowych polecenia przejdź do:
http://localhost:5000/api/priceframe/6/17
Po przejściu na ten adres przeglądarka powinna wyświetlić komunikat
The cost of a 6x17 frame is $20.00
.
Ponieważ utworzono interfejs API, znasz jego kształt, ale zewnętrzny deweloper, który chce korzystać z tego interfejsu API, nie byłby tak szczęśliwy. Możesz pomóc tym deweloperom, ujawniając dokumentację interfejsu API za pomocą interfejsu OpenAPI przy użyciu struktury Swashbuckle, wersji typu open source narzędzi struktury Swagger.
Dodawanie biblioteki Swagger do rozwiązania
Dodaj pakiet Swashbuckle do projektu, uruchamiając
dotnet add package
polecenie .dotnet add package Swashbuckle.AspNetCore
Otwórz plik Startup.cs.
Na początku pliku dodaj kolejny wpis using:
using Microsoft.OpenApi.Models;
Aby dodać generator struktury Swagger do kolekcji usług, zastąp metodę
ConfigureServices(IServiceCollection services)
następującą implementacją.public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); }); }
W metodzie
Configure
pliku Startup.cs włącz oprogramowanie pośredniczące dla narzędzia Swagger UI, dodając wywołanieuseSwagger
iuseSwaggerUI
, jak pokazano w poniższym fragmencie kodu.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(); }); }
Zapisz zmiany w edytorze.
Aby wyświetlić zmiany, uruchom lokalnie aplikację ASP.NET. Wpisz następujące polecenie w oknie terminalu w programie Visual Studio Code:
dotnet run
W przeglądarce przejdź do
http://localhost:5000/swagger/v1/swagger.json
adresu .Odpowiedź w przeglądarce tym razem jest dokumentem opisującym punkty końcowe interfejsu API, podobnie jak w poniższej odpowiedzi.