끄적이는 메모장

[.NET Core 2.x] Swagger 연동 본문

C, C++, C#/C# ASP.NET

[.NET Core 2.x] Swagger 연동

밥보92 2018. 4. 6. 16:09
반응형

API 테스트를 간편하게 도와주는 swagger를 연동 해보자

 

1. swagger package 설치

> VS Code 터미널에서 다음 명령어로 설치를 한다.

 dotnet add TodoApi.csproj package Swashbuckle.AspNetCore 

 

2. swagger service .NET Core에 추가하기

> startup.cs 파일에 swagger를 위한 config를 설정 해 준다.

 > 마이크로 서비스가 스웨거를 생성하기 위한 config 설정이다.

 > 해당 설정에는 스웨거의 JSON 문서에서 추가하고 싶은 정보를 설정 할 수 있다.

   - 현재는 Info라는 정보에 version과 title을 추가 하였다.

using Swashbuckle;
using Swashbuckle.AspNetCore.Swagger;
public void ConfigureServices(IServiceCollection services)
{
  services.AddSwaggerGen(c =>
  {
    c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1"});
  }); 

> 이후 runtime에 실행될 config 설정을 해 준다.

 > 스웨거의 실행될 때 UI가 표시 되는 것을 정의한다.

public void Configure(IApplicationBuilder app, IHostingEnvironment env,

                                IApplicationLifetime applicationLifetime)

{
  app.UseSwagger();
  app.UseSwaggerUI( c =>
  {
    c.SwaggerEndpoint("/swagger/v1/swagger.json","my API V1");
  });

 

3. 실행 후 확인해보기

> http://localhost:5000/swagger/

> 위 그림처럼 각 API들을 테스트 할 수 있도록 swagger의 service가 실행 되는 것을 확인할 수 있다.

> 각각의 tab을 누르면 API의 테스트가 가능하다.

 

4. swagger custom 하기

> 1~3번까지 단계는 가장 기본적으로 swagger를 사용하는 방법이다.

> 만약 main 화면에 추가적인 설명을 custom하게 추가하고 싶다면 다음과 같은 방법을 사용할 수 있다.

 > swaager main 화면 custom

 - Info 내에 정보들을 추가 해준다.

 - contact 처럼 Url을 지정 해 주면 하이퍼링크로 지정이 된다.

using Swashbuckle;
using Swashbuckle.AspNetCore.Swagger;
public void ConfigureServices(IServiceCollection services)
{
  services.AddSwaggerGen(c =>
  {
    c.SwaggerDoc("v1", new Info
       Title = "My API",
      
Version = "v1",
       Description = "It is sample of swagger",
       Contact = new Contact{ Name = "Ryan", Url = "Ryan.com"}

   
});
  }); 

 

반응형

'C, C++, C# > C# ASP.NET' 카테고리의 다른 글

[.NET Core 2.x] RabbitMQ 연동  (0) 2018.04.06
[.NET Core 2.x] NoSQL (Couchbase) 연동  (0) 2018.04.05
[.NET Core 2.x] REST API + MySQL  (0) 2018.04.05
[.NET Core 2.x] VS Code + MySQL  (0) 2018.04.04
[.NET Core 2.x] Visual Studio Code  (0) 2018.04.04