Visual Studio를 사용하여 Azure API Management에 ASP.NET Core 웹 API 게시
이 자습서에서는 Visual Studio를 사용하여 ASP.NET Core 웹 API 프로젝트를 만들고 OpenAPI를 지원하는지 확인하고 Azure App Service 및 Azure API Management에 웹 API를 게시하는 방법을 알아봅니다.
설정하다
자습서를 완료하려면 Azure 계정이 필요합니다.
- 없는 경우 무료 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 라우팅 변경
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 앱을 게시합니다.
- ASP.NET Core 웹 API 앱을 Azure API Management 서비스 인스턴스에 게시합니다.
Azure App Service에 API 앱 게시
Azure API Management에 ASP.NET Core 웹 API를 게시하려면 다음 단계를 완료합니다.
솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭한 후 게시를 선택합니다.
게시 대화 상자에서 Azure를 선택한 다음 다음 단추를 선택합니다.
Azure App Service(Windows)을 선택한 다음 다음 버튼을 선택합니다.
새 Azure App Service만들기 선택합니다.
App Service 만들기 대화 상자가 나타납니다. 앱 이름, 리소스 그룹및 앱 서비스 플랜 항목 필드가 채워집니다. 이러한 이름을 유지하거나 변경할 수 있습니다.
만들기 단추를 선택합니다.
앱 서비스가 만들어지면 다음 버튼을 선택합니다.
새 API Management 서비스만들기를 선택합니다.
API 관리 서비스 만들기 대화 상자가 나타납니다. API 이름, 구독 이름, 리소스 그룹 항목 필드를 그대로 둘 수 있습니다. API Management Service 항목 옆에 있는 새 단추를 선택하고 해당 대화 상자에서 필수 필드를 입력합니다.
확인 단추를 선택하여 API 관리 서비스를 만듭니다.
만들기 버튼을 선택하여 API Management 서비스를 생성하세요. 이 단계를 완료하는 데 몇 분 정도 걸릴 수 있습니다.
완료되면 마침 단추를 선택합니다.
대화 상자가 닫히면 게시에 대한 정보가 포함된 요약 화면이 나타납니다. 게시 단추를 선택합니다.
웹 API는 Azure App Service와 Azure API Management 모두에 게시됩니다. 새 브라우저 창이 표시되고 Azure App Service에서 실행되는 API가 표시됩니다. 해당 창을 닫을 수 있습니다.
웹 브라우저에서 Azure Portal을 열고 만든 API Management 인스턴스로 이동합니다.
왼쪽 메뉴에서 API 옵션을 선택합니다.
이전 단계에서 만든 API를 선택합니다. 이제 가득 찼고 주변을 탐색할 수 있습니다.
게시된 API 이름 구성
API의 이름은 WeatherAPI로 되어 있습니다. 그러나 우리는 그것을 Weather Forecasts로 부르고 싶습니다. 다음 단계를 완료하여 이름을 업데이트합니다.
services.AddSwaggerGen();
직후Program.cs
에 다음을 추가하십시오.builder.Services.ConfigureSwaggerGen(setup => { setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Weather Forecasts", Version = "v1" }); });
ASP.NET Core 웹 API를 다시 게시하고 Azure Portal에서 Azure API Management 인스턴스를 엽니다.
브라우저에서 페이지를 새로 고칩니다. 이제 API의 이름이 올바르게 표시됩니다.
웹 API가 작동하는지 확인
다음 단계를 사용하여 Azure Portal에서 Azure API Management에서 배포된 ASP.NET Core Web API를 테스트할 수 있습니다.
- 테스트 탭을 엽니다.
- / 또는 가져오기 작업을 선택합니다.
- 을(를) 선택하고
을(를) 보내기.
청소
앱 테스트를 마쳤으면 Azure Portal 이동하여 앱을 삭제합니다.
리소스 그룹을 선택한 다음, 만든 리소스 그룹을 선택합니다. 리소스 그룹 페이지에서 삭제를 선택합니다.
리소스 그룹의 이름을 입력하고삭제
선택합니다. 이제 앱과 이 자습서에서 만든 다른 모든 리소스가 Azure에서 삭제됩니다.
추가 리소스
- Azure API Management
- Azure App Service
ASP.NET Core