연습 - Swashbuckle을 사용하여 Open API 문서 만들기

완료됨

이 연습에서는 ASP.NET Core Web API 애플리케이션에 Swagger 및 Swagger UI를 추가합니다. Swagger 도구는 웹 API를 설명하는 OpenAPI 문서를 만드는 데 도움이 됩니다.

참고

로컬 컴퓨터에 소스 코드를 다운로드하여 이 연습을 완료합니다. 파일을 다운로드한 후에는 파일의 압축을 풀어야 합니다.

다운로드: ASP.NET Core Web API 애플리케이션.

  1. 화면 오른쪽 가운데에서 다운로드 단추를 선택합니다.
  2. exercise.zip 파일의 압축을 풉니다.

Swagger 도구 추가

  1. Visual Studio를 열고 ASP.NET Core Web API 앱을 찾습니다.

    Visual Studio 솔루션 열기

  2. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다.

    NuGet 패키지 관리 마우스 오른쪽 단추 클릭

  3. NuGet 패키지 관리자에서 Swashbuckle.AspNetCore를 검색합니다. 패키지를 선택하고 설치합니다.

    NuGet 패키지 관리자

    이제 NuGet 패키지가 설치되었습니다. NuGet 패키지 관리자 탭을 닫습니다.

OpenAPI 문서를 생성하도록 Swashbuckle 구성

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

    파일: Startup.cs

  2. namespace InventoryManagement.ApiApp 줄 바로 위에 다음 지시문을 추가합니다.

    /* === using directive BEGIN === */
    using Microsoft.OpenApi.Models;
    /* === using directive END === */
    
  3. ConfigureServices(IServiceCollection) 메서드 내부의 모든 코드를 다음 코드로 바꿉니다.

        services.AddControllers();
    
        /* === SwaggerGen BEGIN === */
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "Inventory Management", Version = "v1" });
        });
        /* === SwaggerGen END === */
    
  4. Configure(IApplicationBuilder, IWebHostEnvironment) 메서드 내에서 if (env.IsDevelopment()) 조건문을 찾아 해당 문 위의 모든 항목을 다음 코드로 바꿉니다.

        /* === SwaggerUI BEGIN === */
        app.UseSwagger(c =>
        {
            c.PreSerializeFilters.Add((swagger, httpReq) => {
                var server = new OpenApiServer() { Url = $"{httpReq.Scheme}://{httpReq.Host.Value}" };
                swagger.Servers = new List<OpenApiServer>() { server };
            });
        });
        app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "InventoryManagement.ApiApp v1"));
        /* === SwaggerUI END === */
    

    참고 항목

    Swagger 엔드포인트는 개발 환경에서만 사용하도록 설정되는 것이 매우 중요합니다. 그렇지 않으면 API가 대중에게 노출될 수 있습니다.

    이제 ASP.NET Core Web API 앱에 대한 OpenAPI 문서 기능 활성화를 완료했습니다. Startup.cs 파일을 저장합니다. 다음 스크린샷과 비슷한 변경 사항이 표시됩니다.

    파일 수정됨: Startup.cs

OpenAPI 문서 파일 생성

  1. Visual Studio 중앙 위쪽에서 디버그 단추를 선택합니다.

    Visual Studio에서 디버그

    웹 브라우저가 자동으로 열리고 Swagger UI 페이지가 표시됩니다.

    Swagger UI 페이지

    404 오류 페이지가 표시될 수도 있습니다. 이 경우 브라우저의 주소 표시줄에 URL(https://localhost:<port_number>/swagger)을 입력합니다. 예를 들어 다음 스크린샷에서 URL은 https://localhost:44371/swagger입니다.

    페이지를 찾을 수 없음.

  2. 링크를 선택하여 OpenAPI 문서 페이지를 엽니다.

    OpenAPI에 대한 Swagger UI 페이지

  3. OpenAPI 문서가 즉석에서 렌더링됩니다.

    OpenAPI 문서

이제 ASP.NET Core Web API 앱이 OpenAPI 문서를 생성할 준비가 되었습니다.