Publikowanie internetowego interfejsu API platformy ASP.NET Core w usłudze Azure API Management za pomocą programu Visual Studio
Autor: Matt Soucoup
W tym samouczku dowiesz się, jak utworzyć projekt internetowego interfejsu API platformy ASP.NET Core przy użyciu programu Visual Studio, upewnić się, że ma on obsługę interfejsu OpenAPI, a następnie opublikować internetowy interfejs API zarówno w usłudze Azure App Service, jak i w usłudze Azure API Management.
Ustawić
Do ukończenia samouczka potrzebne jest konto platformy Azure.
Tworzenie internetowego interfejsu API platformy ASP.NET Core
Program Visual Studio umożliwia łatwe tworzenie nowego projektu internetowego interfejsu API platformy ASP.NET Core na podstawie szablonu. Postępuj zgodnie z poniższymi instrukcjami, aby utworzyć nowy projekt internetowego interfejsu API platformy ASP.NET Core:
- W menu Plik wybierz pozycję Nowy>projekt.
- Wprowadź Web API w polu wyszukiwania.
- Wybierz szablon ASP.NET Core Web API i następnie wybierz Dalej.
- W oknie dialogowym Konfigurowanie nowego projektu nadaj projektowi nazwę WeatherAPI i wybierz pozycję Dalej.
- W oknie dialogowym Dodatkowe informacje:
- Upewnij się, że framework to .NET 6.0 (obsługa długoterminowa).
- Potwierdź, że pole wyboru Użyj kontrolerów (usuń zaznaczenie, aby korzystać z minimalnych interfejsów API) jest zaznaczone.
- Upewnij się, że zaznaczono pole wyboru Włącz obsługę interfejsu OpenAPI.
- Wybierz pozycję Utwórz.
Eksplorowanie kodu
Definicje struktury Swagger umożliwiają usłudze Azure API Management odczytywanie definicji interfejsu API aplikacji. Zaznaczając pole wyboru Włącz obsługę interfejsu OpenAPI podczas tworzenia aplikacji, program Visual Studio automatycznie dodaje kod w celu utworzenia definicji Swagger. Otwórz plik Program.cs
, który pokazuje następujący kod:
...
builder.Services.AddSwaggerGen();
...
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(); // Protected by if (env.IsDevelopment())
}
...
Upewnij się, że definicje Swagger są zawsze generowane
Usługa Azure API Management wymaga, aby definicje Swagger muszą być zawsze obecne, niezależnie od środowiska aplikacji. Aby upewnić się, że są one zawsze generowane, przenieś app.UseSwagger();
poza blok if (app.Environment.IsDevelopment())
.
Zaktualizowany kod:
...
app.UseSwagger();
if (app.Environment.IsDevelopment())
{
app.UseSwaggerUI();
}
...
Zmienianie routingu interfejsu API
Zmień strukturę adresu URL wymaganą do uzyskania dostępu do akcji Get
w WeatherForecastController
. Wykonaj następujące kroki:
Otwórz plik
WeatherForecastController.cs
.Zastąp atrybut
[Route("[controller]")]
na poziomie klasy na[Route("/")]
. Zaktualizowana definicja klasy :[ApiController] [Route("/")] public class WeatherForecastController : ControllerBase
Publikowanie internetowego interfejsu API w usłudze Azure App Service
Wykonaj następujące kroki, aby opublikować internetowy interfejs API platformy ASP.NET Core w usłudze Azure API Management:
- Opublikuj aplikację API w Azure App Service.
- Opublikuj aplikację interfejsu API webowego ASP.NET Core w instancji usługi Azure API Management.
Opublikuj aplikację API w usłudze Azure App Service
Wykonaj następujące kroki, aby opublikować internetowy interfejs API platformy ASP.NET Core w usłudze Azure API Management:
W Eksploratorze Rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz pozycję Publikuj.
W oknie dialogowym Publikowanie, wybierz Azure i wybierz przycisk Dalej.
Wybierz usługi Azure App Service (Windows) i wybierz przycisk Dalej.
Wybierz pozycję Utwórz nową usługę Azure App Service.
Pojawi się okno dialogowe Tworzenie usługi App Service. Pola App Name, Resource Groupi App Service Plan są wypełnione. Możesz zachować te nazwy lub zmienić je.
Wybierz przycisk Utwórz.
Po utworzeniu usługi App Service wybierz przycisk Dalej.
Wybierz pozycję Utwórz nową usługę API Management.
Zostanie wyświetlone okno dialogowe Tworzenie usługi API Management. Możesz pozostawić pola wprowadzania nazwa interfejsu API , nazwa subskrypcji oraz grupa zasobów takimi, jakie są. Wybierz przycisk nowy obok wpisu API Management Service i wprowadź wymagane pola z tego okna dialogowego.
Wybierz przycisk OK, aby utworzyć usługę API Management.
Wybierz przycisk Utwórz, aby rozpocząć tworzenie usługi zarządzania API. Wykonanie tego kroku może potrwać kilka minut.
Po zakończeniu wybierz przycisk Zakończ.
Zostanie zamknięte okno dialogowe i zostanie wyświetlony ekran podsumowania zawierający informacje o publikowaniu. Wybierz przycisk Publikuj.
Internetowy interfejs API jest publikowany zarówno w usłudze Azure App Service, jak i w usłudze Azure API Management. Pojawi się nowe okno przeglądarki i pokaże działający w Azure App Service interfejs API. Możesz zamknąć to okno.
Otwórz portal Azure w przeglądarce internetowej i przejdź do utworzonej instancji zarządzania API.
Wybierz opcję interfejsów API z menu po lewej stronie.
Wybierz interfejs API utworzony w poprzednich krokach. Jest już wypełniony i można go eksplorować.
Konfigurowanie opublikowanej nazwy interfejsu API
Zwróć uwagę, że nazwa interfejsu API nosi nazwę WeatherAPI; chcemy jednak nazwać to Prognozy pogody. Wykonaj następujące kroki, aby zaktualizować nazwę:
Dodaj następujący kod do
Program.cs
natychmiast poservices.AddSwaggerGen();
builder.Services.ConfigureSwaggerGen(setup => { setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Weather Forecasts", Version = "v1" }); });
Ponownie opublikuj internetowy interfejs API platformy ASP.NET Core i otwórz wystąpienie usługi Azure API Management w witrynie Azure Portal.
Odśwież stronę w przeglądarce. Zobaczysz, że nazwa interfejsu API jest teraz poprawna.
Sprawdzanie, czy internetowy interfejs API działa
Możesz przetestować wdrożony internetowy interfejs API platformy ASP.NET Core w usłudze Azure API Management w witrynie Azure Portal, wykonując następujące czynności:
- Otwórz kartę test.
- Wybierz
lub operację . - Wybierz pozycję Wyślij.
Czyszczenie
Po zakończeniu testowania aplikacji przejdź do witryny Azure Portal i usuń aplikację.
Wybierz pozycję Grupy zasobów, a następnie wybierz utworzoną grupę zasobów.
Na stronie grupy zasobów wybierz pozycję Usuń.
Wprowadź nazwę grupy zasobów i wybierz pozycję Usuń. Aplikacja i wszystkie inne zasoby utworzone w tym samouczku są teraz usuwane z platformy Azure.