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 계정이 필요합니다.
- 계정이 없는 경우 체험 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 라우팅 변경
WeatherForecastController
의 Get
작업에 액세스하는 데 필요한 URL 구조를 변경합니다. 다음 단계를 완료합니다.
WeatherForecastController.cs
파일을 엽니다.[Route("[controller]")]
클래스 수준 특성을[Route("/")]
로 바꿉니다. 업데이트된 클래스 정의:[ApiController] [Route("/")] public class WeatherForecastController : ControllerBase
Azure App Service에 웹 API 게시
다음 단계를 완료하여 Azure API Management에 ASP.NET Core 웹 API를 게시합니다.
- Azure App Service에 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 계획 항목 필드가 채워집니다. 이러한 이름을 유지하거나 변경할 수 있습니다.
만들기 단추를 선택합니다.
앱 서비스가 만들어지면 다음 단추를 선택합니다.
새 API Management 서비스 만들기를 선택합니다.
API Management Service 만들기 대화 상자가 나타납니다. API 이름, 구독 이름 및 리소스 그룹 항목 필드를 그대로 둘 수 있습니다. API Management 서비스 항목 옆에 있는 새 단추를 선택하고 해당 대화 상자에서 필요한 필드를 입력합니다.
확인 단추를 선택하여 API Management 서비스를 만듭니다.
만들기 단추를 선택하여 API Management 서비스 만들기를 진행합니다. 이 단계를 완료하는 데 몇 분 정도 걸릴 수 있습니다.
완료되면 마침 단추를 선택합니다.
대화 상자가 닫히고 게시에 대한 정보가 포함된 요약 화면이 나타납니다. 게시 단추를 선택합니다.
웹 API는 Azure App Service와 Azure API Management에 모두 게시됩니다. 새 브라우저 창이 나타나고 Azure App Service에서 실행되는 API가 표시됩니다. 해당 창을 닫을 수 있습니다.
웹 브라우저에서 Azure Portal을 열고 만든 API Management 인스턴스로 이동합니다.
왼쪽 메뉴에서 API 옵션을 선택합니다.
이전 단계에서 만든 API를 선택합니다. 이제 채워져 있으며, 해당 내용을 살펴볼 수 있습니다.
게시된 API 이름 구성
API의 이름은 WeatherAPI입니다. 그러나 이를 Weather Forecasts라고 하겠습니다. 이름을 업데이트하려면 다음 단계를 완료합니다.
다음을
servies.AddSwaggerGen();
바로 뒤의Program.cs
에 추가합니다.builder.Services.ConfigureSwaggerGen(setup => { setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Weather Forecasts", Version = "v1" }); });
Azure Portal에서 ASP.NET Core 웹 API를 다시 게시하고 Azure API Management 인스턴스를 엽니다.
브라우저에서 페이지를 새로 고칩니다. 이제 표시되는 API 이름이 올바릅니다.
웹 API가 작동하는지 확인
Azure Portal에서 다음 단계에 따라 Azure API Management에 배포된 ASP.NET Core 웹 API를 테스트할 수 있습니다.
- 테스트 탭을 엽니다.
- / 또는 Get 작업을 선택합니다.
- 보내기를 선택합니다.
정리
앱 테스트를 완료하면 Azure Portal로 이동하고 앱을 삭제합니다.
리소스 그룹을 선택한 다음 만든 리소스 그룹을 선택합니다.
리소스 그룹 페이지에서 삭제를 선택합니다.
리소스 그룹의 이름을 입력하고 삭제를 선택합니다. 이 자습서에서 만든 앱과 다른 모든 리소스는 이제 Azure에서 삭제됩니다.
추가 리소스
ASP.NET Core