Visual Studio를 사용하여 Azure API Management에 ASP.NET Core 웹 API 게시
작성자: Matt Soucoup
설치
- 계정이 없는 경우 체험 Azure 계정을 엽니다.
- 아직 만들지 않은 경우 새 Azure API Management 인스턴스를 만듭니다.
- 웹 API 앱 프로젝트를 만듭니다.
앱 구성
ASP.NET Core 웹 API에 Swagger 정의를 추가하면 Azure API Management에서 앱의 API 정의를 읽을 수 있습니다. 다음 단계를 완료합니다.
Swagger 추가
ASP.NET Core 웹 API 프로젝트에 Swashbuckle.AspNetCore NuGet 패키지를 추가합니다.

다음 줄을
Startup.ConfigureServices메서드에 추가합니다.services.AddSwaggerGen();다음 줄을
Startup.Configure메서드에 추가합니다.app.UseSwagger();
API 라우팅 변경
다음으로, WeatherForecastController의 Get 작업에 액세스하는 데 필요한 URL 구조를 변경합니다. 다음 단계를 완료합니다.
WeatherForecastController.cs파일을 엽니다.[Route("[controller]")]클래스 수준 특성을 삭제합니다. 클래스 정의는 다음과 같습니다.[ApiController] public class WeatherForecastController : ControllerBaseGet()작업에[Route("/")]특성을 추가합니다. 함수 정의는 다음과 같습니다.[HttpGet] [Route("/")] public IEnumerable<WeatherForecast> Get()
Azure App Service에 웹 API 게시
다음 단계를 완료하여 Azure API Management에 ASP.NET Core 웹 API를 게시합니다.
- Azure App Service에 API 앱을 게시합니다.
- Azure API Management 서비스 인스턴스에 빈 API를 추가합니다.
- Azure API Management 서비스 인스턴스에 ASP.NET Core 웹 API 앱을 게시합니다.
Azure App Service에 API 앱 게시
다음 단계를 완료하여 Azure API Management에 ASP.NET Core 웹 API를 게시합니다.
솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다.

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

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

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

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

만들기가 완료되면 대화 상자가 자동으로 닫히고 게시 대화 상자가 다시 포커스를 받습니다. 만든 인스턴스가 자동으로 선택됩니다.

이 시점에서 Azure API Management 서비스에 API를 추가해야 합니다. 다음 작업을 완료하는 동안 Visual Studio를 열어 두세요.
Azure API Management에 API 추가
- 이전에 Azure Portal에서 만든 API Management 서비스 인스턴스를 엽니다. API 블레이드를 선택합니다.

- Echo API 옆의 3개 점을 선택하고 팝업 메뉴에서 삭제를 선택하여 제거합니다.

- 새 API 추가 패널에서 빈 API 타일을 선택합니다.

빈 API 만들기 대화 상자가 나타나면 다음 값을 입력합니다.
- 표시 이름: WeatherForecasts
- 이름: weatherforecasts
- API URL 접미사: v1
- 웹 서비스 URL 필드는 비워 둡니다.
만들기 단추를 선택합니다.

빈 API가 만들어집니다.

Azure API Management에 ASP.NET Core 웹 API 게시
Visual Studio로 다시 전환합니다. 게시 대화 상자는 이전에 중단한 위치에서 계속 열려 있습니다.
새로 게시된 Azure App Service를 선택하여 강조 표시합니다.
다음 단추를 선택합니다.

이전에 만든 Azure API Management 서비스가 이제 대화 상자에 표시됩니다. 해당 서비스와 API 폴더를 확장하여 만든 빈 API를 표시합니다.
빈 API의 이름을 선택하고 마침 단추를 선택합니다.

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

웹 API는 Azure App Service와 Azure API Management에 모두 게시됩니다. 새 브라우저 창이 나타나고 Azure App Service에서 실행되는 API가 표시됩니다. 해당 창을 닫을 수 있습니다.
Azure Portal에서 Azure API Management 인스턴스로 다시 전환합니다.
브라우저 창을 새로 고칩니다.
이전 단계에서 만든 빈 API를 선택합니다. 이제 채워져 있으며, 해당 내용을 살펴볼 수 있습니다.

게시된 API 이름 구성
API의 이름이 명명한 것과 다르다는 것을 알 수 있습니다. 게시된 API의 이름은 WeatherAPI이지만, 만들 때 지정한 이름은 WeatherForecasts입니다. 이름을 수정하려면 다음 단계를 완료합니다.

Startup.ConfigureServices메서드에서 다음 줄을 삭제합니다.services.AddSwaggerGen();Startup.ConfigureServices메서드에 다음 코드를 추가합니다.services.AddSwaggerGen(config => { config.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "WeatherForecasts", Version = "v1" }); });새로 만든 게시 프로필을 엽니다. 솔루션 탐색기에서 Properties/PublishProfiles 폴더를 찾으면 됩니다.

<OpenAPIDocumentName>요소의 값을v1에서WeatherForecasts로 변경합니다.
Azure Portal에서 ASP.NET Core 웹 API를 다시 게시하고 Azure API Management 인스턴스를 엽니다.
브라우저에서 페이지를 새로 고칩니다. 이제 표시되는 API 이름이 올바릅니다.

웹 API가 작동하는지 확인
Azure Portal에서 다음 단계에 따라 Azure API Management에 배포된 ASP.NET Core 웹 API를 테스트할 수 있습니다.
테스트 탭을 엽니다.
/ 또는 Get 작업을 선택합니다.
보내기를 선택합니다.

성공적인 응답은 다음과 같습니다.

정리
앱 테스트를 완료하면 Azure Portal로 이동하고 앱을 삭제합니다.
리소스 그룹을 선택한 다음 만든 리소스 그룹을 선택합니다.

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

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