Een ASP.NET Core-web-API publiceren naar Azure API Management met Visual Studio
Door Matt Soucoup
In deze zelfstudie leert u hoe u een ASP.NET Core-web-API-project maakt met visual Studio, ervoor zorgt dat het OpenAPI-ondersteuning biedt en vervolgens de web-API publiceert naar Zowel Azure App Service als Azure API Management.
Opzetten
U hebt een Azure-account nodig om de zelfstudie te voltooien.
- Open een gratis Azure-account als u er nog geen hebt.
Een ASP.NET Core-web-API maken
Met Visual Studio kunt u eenvoudig een nieuw ASP.NET Core-web-API-project maken op basis van een sjabloon. Volg deze aanwijzingen om een nieuw ASP.NET Core-web-API-project te maken:
- Selecteer in het menu Bestand Nieuw>Project.
- Voer Web-API- in het zoekvak in.
- Selecteer de sjabloon ASP.NET Core Web API en kies Volgende.
- Geef in het Configureer uw nieuwe project dialoogvensterde naam van het project WeatherAPI en selecteer Volgende.
- In het dialoogvenster Aanvullende informatie:
- Bevestig dat het framework .NET 6.0 (langetermijnondersteuning)is.
- Controleer of het selectievakje voor Controllers gebruiken is aangevinkt (schakel het uit om minimale API's te gebruiken).
- Controleer of het selectievakje voor OpenAPI-ondersteuning inschakelen is ingeschakeld.
- Selecteer Maakaan.
De code verkennen
Met Swagger-definities kan Azure API Management de API-definities van de app lezen. Door tijdens het maken van de app het selectievakje OpenAPI-ondersteuning inschakelen aan te vinken, voegt Visual Studio automatisch de code toe om de Swagger-definities te maken. Open het Program.cs
-bestand met de volgende code:
...
builder.Services.AddSwaggerGen();
...
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(); // Protected by if (env.IsDevelopment())
}
...
Zorg ervoor dat de Swagger-definities altijd worden gegenereerd
Voor Azure API Management moeten de Swagger-definities altijd aanwezig zijn, ongeacht de omgeving van de toepassing. Verplaats app.UseSwagger();
buiten het if (app.Environment.IsDevelopment())
blok om ervoor te zorgen dat ze altijd worden gegenereerd.
De bijgewerkte code:
...
app.UseSwagger();
if (app.Environment.IsDevelopment())
{
app.UseSwaggerUI();
}
...
De API-routering wijzigen
Wijzig de URL-structuur die nodig is voor toegang tot de Get
actie van de WeatherForecastController
. Voer de volgende stappen uit:
Open het
WeatherForecastController.cs
-bestand.Vervang het kenmerk
[Route("[controller]")]
klasseniveau door[Route("/")]
. De bijgewerkte klassedefinitie:[ApiController] [Route("/")] public class WeatherForecastController : ControllerBase
De web-API publiceren naar Azure App Service
Voer de volgende stappen uit om de ASP.NET Core-web-API te publiceren naar Azure API Management:
- Publiceer de API-app naar Azure App Service.
- Publiceer de ASP.NET Core-web-API-app naar het Azure API Management-service-exemplaar.
De API-app publiceren naar Azure App Service
Voer de volgende stappen uit om de ASP.NET Core-web-API te publiceren naar Azure API Management:
Klik in Solution Explorer-met de rechtermuisknop op het project en selecteer Publiceren.
In het dialoogvenster Publiceren, selecteer Azure en selecteer de knop Volgende.
Selecteer Azure App Service (Windows) en klik op de Volgende knop.
Selecteer Een nieuwe Azure App Service-maken.
Het dialoogvenster App Service maken wordt weergegeven. De velden app-naam, resourcegroepen App Service-plan worden ingevuld. U kunt deze namen behouden of wijzigen.
Selecteer de knop maken.
Zodra de App Service is gemaakt, selecteert u de knop Volgende.
Selecteer Een nieuwe API Management Service-maken.
Het dialoogvenster API Management Service maken wordt weergegeven. U kunt de API-naam, abonnementsnaamen resourcegroep invoervelden ongewijzigd laten. Selecteer de knop nieuwe naast de vermelding API Management Service en voer de vereiste velden in dat dialoogvenster in.
Selecteer de knop OK om de API Management-service te maken.
Selecteer de knop aanmaken om verder te gaan met het creëren van de API Management-service. Het kan enkele minuten duren voordat deze stap is voltooid.
Wanneer dat is voltooid, selecteert u de knop Voltooien.
Het dialoogvenster wordt gesloten en er wordt een overzichtsscherm weergegeven met informatie over de publicatie. Selecteer de knop Publiceren.
De web-API publiceert zowel naar Azure App Service als Azure API Management. Er wordt een nieuw browservenster weergegeven waarin de API wordt weergegeven die wordt uitgevoerd in Azure App Service. U kunt dat venster sluiten.
Open Azure Portal in een webbrowser en navigeer naar het API Management-exemplaar dat u hebt gemaakt.
Selecteer de API's optie in het menu aan de linkerkant.
Selecteer de API die u in de voorgaande stappen hebt gemaakt. Het is nu gevuld en je kunt eromheen verkennen.
De gepubliceerde API-naam configureren
U ziet dat de naam van de API WeatherAPIis; echter, willen we het Weersvoorspellingennoemen. Voer de volgende stappen uit om de naam bij te werken:
Voeg het volgende toe aan
Program.cs
direct naservices.AddSwaggerGen();
builder.Services.ConfigureSwaggerGen(setup => { setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Weather Forecasts", Version = "v1" }); });
Publiceer de ASP.NET Core-web-API opnieuw en open het Azure API Management-exemplaar in Azure Portal.
Vernieuw de pagina in uw browser. U ziet nu dat de naam van de API juist is.
Controleren of de web-API werkt
U kunt de geïmplementeerde ASP.NET Core-web-API in Azure API Management testen vanuit Azure Portal met de volgende stappen:
- Open het tabblad Test.
- Selecteer / of de bewerking ophalen.
- Selecteer Verzenden.
Opschonen
Wanneer u klaar bent met het testen van de app, gaat u naar de Azure Portal en verwijdert u de app.
Selecteer Resourcegroepenen selecteer vervolgens de resourcegroep die u hebt gemaakt.
Op de pagina resourcegroepen selecteer Verwijderen.
Voer de naam van de resourcegroep in en selecteer Verwijderen. Uw app en alle andere resources die in deze zelfstudie zijn gemaakt, worden nu verwijderd uit Azure.