[Swagger] ASP.NET Core API x Swagger

11079 단어 swaggerASP,NETapi
이미 ASP.NET Core 환경에서 API를 작성할 수 있다고 가정하면 오늘 Swagger를 사용하여 API 문서를 쉽게 생성하고 싶습니다.

Swagger란?



Swagger는 개발자가 RESTful 웹 서비스를 설계, 구축, 문서화 및 활용할 수 있도록 도와주는 도구입니다. 많은 개발자들이 사용하는 오픈 소스 소프트웨어 프레임워크입니다. Swagger 툴셋은 자동으로 문서를 생성하거나 코드를 생성하거나 테스트 케이스를 생성합니다.

Swagger x ASP.NET Core 2x에 대해서는 이 문서를 참조하십시오. htps : // / cs. 미 c 로소 ft. 코 m / 엔 - s / 아 sp 네 t / 이것 / 쓰리 아 ls / ぇ b - 아피에 lp 뿌게 s - 으 신 g 슈 r?ゔ ぃ w = 아 sp t 이것 2.2

준비



먼저 필요한 라이브러리를 프로젝트에 추가합니다.
Install-Package Swashbuckle.AspNetCore

Swagger 통합



Startup.cs에서 Swagger를 올바르게 사용할 수 있도록 설정합니다.

Startup.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Swashbuckle.AspNetCore.Swagger;
using System;
using System.IO;
using System.Reflection;

namespace SwaggerExampleProject
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            // Register the Swagger generator, defining 1 or more Swagger documents
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info
                {
                    Version = "v1",
                    Title = "ToDo API",
                    Description = "A simple example ASP.NET Core Web API",
                    TermsOfService = "None",
                    Contact = new Contact
                    {
                        Name = "Shayne Boyer",
                        Email = string.Empty,
                        Url = "https://twitter.com/spboyer"
                    },
                    License = new License
                    {
                        Name = "Use under LICX",
                        Url = "https://example.com/license"
                    }
                });

                // Set the comments path for the Swagger JSON and UI.
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                c.IncludeXmlComments(xmlPath);
            });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            // Enable middleware to serve generated Swagger as a JSON endpoint.
            app.UseSwagger();

            // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), 
            // specifying the Swagger JSON endpoint.
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
                c.RoutePrefix = string.Empty;
            });


            app.UseHttpsRedirection();
            app.UseMvc();
        }
    }
}


프로젝트 파일 편집



프로젝트 파일을 편집합니다.
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <NoWarn>$(NoWarn);1591</NoWarn>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="4.0.1" />
  </ItemGroup>

</Project>

프로젝트를 실행해 봅니다.



localhost의 최상위 레벨을 열면 프로젝트 템플릿인 Values가 표시됩니다.



다음



다음 번은 더욱 세세하게, 코멘트의 남겨 두는 방법이나 클래스 변수의 작성 방법등을 정리합니다.

계속 → ASP.NET Core API x Swagger II

좋은 웹페이지 즐겨찾기