Visual Studio를 사용하여 Azure API Management에 ASP.NET Core 웹 API 게시

작성자: Matt Soucoup

이 자습서에서는 Visual Studio를 사용하여 ASP.NET Core 웹 API 프로젝트를 만들고 OpenAPI가 지원되는지 확인하고 웹 API를 Azure App Service 및 Azure API Management 게시하는 방법을 알아봅니다.

설정

자습서를 완료하려면 Azure 계정이 필요합니다.

ASP.NET Core 웹 API 만들기

Visual Studio를 사용하면 템플릿에서 새 ASP.NET Core 웹 API 프로젝트를 쉽게 만들 수 있습니다. 다음 지침에 따라 새 ASP.NET Core 웹 API 프로젝트를 만듭니다.

  • 파일 메뉴에서 새>프로젝트를 선택합니다.
  • 검색 상자에 Web API를 입력합니다.
  • ASP.NET Core Web API 템플릿을 선택하고 다음을 선택합니다.
  • 새 프로젝트 대화 상자 구성에서 WeatherAPI 프로젝트 이름을 지정하고 다음을 선택합니다.
  • 추가 정보 대화 상자에서 다음을 수행합니다.
  • 프레임워크가 .NET 6.0(장기 지원)인지 확인합니다.
  • 컨트롤러 사용(최소 API를 사용하려면 선택 취소) 확인란을 선택합니다.
  • OpenAPI 지원 사용 확인란이 선택되어 있는지 확인합니다.
  • 만들기를 실행합니다.

코드 탐색

Swagger 정의를 사용하면 Azure API Management에서 앱의 API 정의를 읽을 수 있습니다. Visual Studio는 앱을 만드는 동안 OpenAPI 지원 사용 확인란을 선택하여 코드를 자동으로 추가하여 Swagger 정의를 만듭니다. 다음 코드를 표시하는 Program.cs 파일을 엽니다.


...

builder.Services.AddSwaggerGen();

...

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(); // Protected by if (env.IsDevelopment())
}

...

Swagger 정의가 항상 생성되는지 확인합니다.

Azure API Management 애플리케이션의 환경에 관계없이 항상 Swagger 정의가 있어야 합니다. 항상 생성되도록 하려면 if (app.Environment.IsDevelopment()) 블록 외부로 app.UseSwagger();를 이동합니다.

업데이트된 코드:


...

app.UseSwagger();

if (app.Environment.IsDevelopment())
{
    app.UseSwaggerUI();
}

...

API 라우팅 변경

WeatherForecastControllerGet 작업에 액세스하는 데 필요한 URL 구조를 변경합니다. 다음 단계를 완료합니다.

  1. WeatherForecastController.cs 파일을 엽니다.

  2. [Route("[controller]")] 클래스 수준 특성을 [Route("/")]로 바꿉니다. 업데이트된 클래스 정의:

    [ApiController]
    [Route("/")]
    public class WeatherForecastController : ControllerBase
    

Azure App Service에 웹 API 게시

다음 단계를 완료하여 Azure API Management에 ASP.NET Core 웹 API를 게시합니다.

  1. Azure App Service에 API 앱을 게시합니다.
  2. Azure API Management 서비스 인스턴스에 ASP.NET Core 웹 API 앱을 게시합니다.

Azure App Service에 API 앱 게시

다음 단계를 완료하여 Azure API Management에 ASP.NET Core 웹 API를 게시합니다.

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다.

  2. 게시 대화 상자에서 Azure를 선택하고 다음 단추를 선택합니다.

  3. Azure App Service(Windows)를 선택하고 다음 단추를 선택합니다.

  4. 새 Azure App Service 만들기를 선택합니다.

    App Service 만들기 대화 상자가 나타납니다. 앱 이름, 리소스 그룹App Service 계획 항목 필드가 채워집니다. 이러한 이름을 유지하거나 변경할 수 있습니다.

  5. 만들기 단추를 선택합니다.

  6. 앱 서비스가 만들어지면 다음 단추를 선택합니다.

  7. 새 API Management 서비스 만들기를 선택합니다.

    API Management Service 만들기 대화 상자가 나타납니다. API 이름, 구독 이름리소스 그룹 항목 필드를 그대로 둘 수 있습니다. API Management 서비스 항목 옆에 있는 단추를 선택하고 해당 대화 상자에서 필요한 필드를 입력합니다.

    확인 단추를 선택하여 API Management 서비스를 만듭니다.

  8. 만들기 단추를 선택하여 API Management 서비스 만들기를 진행합니다. 이 단계를 완료하는 데 몇 분 정도 걸릴 수 있습니다.

  9. 완료되면 마침 단추를 선택합니다.

  10. 대화 상자가 닫히고 게시에 대한 정보가 포함된 요약 화면이 나타납니다. 게시 단추를 선택합니다.

    웹 API는 Azure App Service와 Azure API Management에 모두 게시됩니다. 새 브라우저 창이 나타나고 Azure App Service에서 실행되는 API가 표시됩니다. 해당 창을 닫을 수 있습니다.

  11. 웹 브라우저에서 Azure Portal을 열고 만든 API Management 인스턴스로 이동합니다.

  12. 왼쪽 메뉴에서 API 옵션을 선택합니다.

  13. 이전 단계에서 만든 API를 선택합니다. 이제 채워져 있으며, 해당 내용을 살펴볼 수 있습니다.

게시된 API 이름 구성

API의 이름은 WeatherAPI입니다. 그러나 이를 Weather Forecasts라고 하겠습니다. 이름을 업데이트하려면 다음 단계를 완료합니다.

  1. 다음을 servies.AddSwaggerGen(); 바로 뒤의 Program.cs에 추가합니다.

    builder.Services.ConfigureSwaggerGen(setup =>
    {
        setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
        {
            Title = "Weather Forecasts",
            Version = "v1"
        });
    });
    
  2. Azure Portal에서 ASP.NET Core 웹 API를 다시 게시하고 Azure API Management 인스턴스를 엽니다.

  3. 브라우저에서 페이지를 새로 고칩니다. 이제 표시되는 API 이름이 올바릅니다.

웹 API가 작동하는지 확인

Azure Portal에서 다음 단계에 따라 Azure API Management에 배포된 ASP.NET Core 웹 API를 테스트할 수 있습니다.

  1. 테스트 탭을 엽니다.
  2. / 또는 Get 작업을 선택합니다.
  3. 보내기를 선택합니다.

정리

앱 테스트를 완료하면 Azure Portal로 이동하고 앱을 삭제합니다.

  1. 리소스 그룹을 선택한 다음 만든 리소스 그룹을 선택합니다.

  2. 리소스 그룹 페이지에서 삭제를 선택합니다.

  3. 리소스 그룹의 이름을 입력하고 삭제를 선택합니다. 이 자습서에서 만든 앱과 다른 모든 리소스는 이제 Azure에서 삭제됩니다.

추가 리소스