다음을 통해 공유


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

맷 수쿠프

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

설정하다

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

ASP.NET Core 웹 API 만들기

Visual Studio를 사용하면 템플릿에서 새 ASP.NET Core Web API 프로젝트를 쉽게 만들 수 있습니다. 다음 지침에 따라 새 ASP.NET Core Web 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 정의가 항상 있어야 합니다. 항상 생성되도록 하려면 app.UseSwagger();if (app.Environment.IsDevelopment()) 블록 외부로 이동하세요.

업데이트된 코드:


...

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. ASP.NET Core 웹 API 앱을 Azure API Management 서비스 인스턴스에 게시합니다.

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 만들기 대화 상자가 나타납니다. 앱 이름, 리소스 그룹앱 서비스 플랜 항목 필드가 채워집니다. 이러한 이름을 유지하거나 변경할 수 있습니다.

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

  6. 앱 서비스가 만들어지면 다음 버튼을 선택합니다.

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

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

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

  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. services.AddSwaggerGen(); 직후 Program.cs에 다음을 추가하십시오.

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

  3. 브라우저에서 페이지를 새로 고칩니다. 이제 API의 이름이 올바르게 표시됩니다.

웹 API가 작동하는지 확인

다음 단계를 사용하여 Azure Portal에서 Azure API Management에서 배포된 ASP.NET Core Web API를 테스트할 수 있습니다.

  1. 테스트 탭을 엽니다.
  2. / 또는 가져오기 작업을 선택합니다.
  3. 을(를) 선택하고 을(를) 보내기.

청소

앱 테스트를 마쳤으면 Azure Portal 이동하여 앱을 삭제합니다.

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

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

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

추가 리소스