SWAGGER
-
[ASP.NET Core] WebApi with Swagger - 5. enum.NET/ASP.NET Core 2023. 2. 18. 13:26
아래와 같은 Controller 소스가 있다. using Microsoft.AspNetCore.Mvc; namespace swagger_5_enum.Controllers; [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger _logger; public WeatherF..
-
[ASP.NET Core] WebApi with Swagger - 4. DataAnnotations을 통한 유효성 검사(Vaildation) 응답.NET/ASP.NET Core 2023. 2. 16. 23:13
System.ComponentModel.DataAnnotations 네임스페이스에 속한 특성(Attribute)를 통해 요청값에 대한 유효성 처리를 적용할 수 있다. /// /// 입력된 일수만큼 날씨 데이터를 제공합니다. /// /// 입력일수 /// [HttpGet("{cnt}", Name = "GetWeatherForecastByCount")] public IEnumerable Get( [Required][Range(1, 10)] int cnt) { // 이제 cnt 값은 1~10 사이의 값이 필수적으로 들어와야 한다. return Enumerable.Range(1, cnt).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(ind..
-
[ASP.NET Core] WebApi with Swagger - 3. 응답 명세(ProducesResponseType).NET/ASP.NET Core 2023. 2. 15. 23:27
항상 올바른 요청(Request)에 올바른 응답(Response)값만 줄 수 있는 상황이라면 좋겠지만, 요청이 거지같거나(?) 올바른 요청이지만 이를 제대로 제공할 데이터가 없는 경우가 종종 있다. ProducesResponseType는 이와 같이 응답상태에 따라 타입을 지정하여 안내할 수 있는 방법을 제공한다. 아래 소스코드는 데이터가 없을 땐 string 형식으로, 데이터가 있을땐 WeatherForecast 배열형식으로 이원화하여 응답할 수 있음을 안내하는 예제이다. /// /// 오늘 ~ 입력한 날짜 하루전에 해당하는 날씨 데이터를 제공합니다. /// /// 입력날짜 /// [HttpGet("datetime", Name = "GetWeatherForecastByDateTime")] [Produce..
-
[ASP.NET Core] WebApi with Swagger - 2. 예제(example) 적용.NET/ASP.NET Core 2023. 2. 14. 22:40
Swagger 문서내 요청에서 파라메터에 어떤 값이 들어가야하는지, 또는 어떤 값이 나올지 주석을 이용해 제한적으로나마 예제(example)을 적용할 수 있다. 1. 숫자 /// /// 입력된 일수만큼 날씨 데이터를 제공합니다. /// /// 입력일수 // 숫자형 예제 /// [HttpGet("{cnt}", Name = "GetWeatherForecastByCount")] public IEnumerable Get(int cnt) { return Enumerable.Range(1, cnt).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summ..
-
[ASP.NET Core] WebApi with Swagger - 1. API 설명 추가하기 - 3.NET/ASP.NET Core 2023. 2. 12. 23:25
만약 DTO 클래스가 별도 프로젝트로 분리되어 있을 경우, 해당 프로젝트도 document 에 설명이 반영될 수 있도록 설정해줘야 한다. DTO가 추가된 프로젝트에도 설정을 true로 추가한 뒤, Program.cs 를 아래와 같이 변경한다. foreach (var file in Directory.GetFiles(AppContext.BaseDirectory, "*.xml", SearchOption.TopDirectoryOnly)) { setup.IncludeXmlComments(file, true); var doc = XDocument.Load(file); } 첫번째 장과 마찬가지로, 위 코드는 xml 출력위치를 별도로 수정하지 않았다는 전제하에 작성한 코드이다. xml 출력위치를 특정위치로 수정했다면 ..
-
[ASP.NET Core] WebApi with Swagger - 1. API 설명 추가하기 - 2.NET/ASP.NET Core 2023. 2. 12. 23:10
주석을 통한 Swagger 문서화는 해당 데이터를 주고받는 DTO 모델에도 적용 가능하다. WeatherForecast DTO모델 클래스에 아래와 같이 주석을 달아준다. /// /// 날짜입니다. /// /// /// 2021-08-01T00:00:00 public DateTime Date { get; set; } /// /// 섭씨온도입니다. /// /// /// 42 public int TemperatureC { get; set; } /// /// 화씨온도입니다. /// /// /// 107 public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); /// /// 날씨 내용입니다. /// /// /// Freezing public string? Su..
-
[ASP.NET Core] WebApi with Swagger - 1. API 설명 추가하기 - 1.NET/ASP.NET Core 2023. 2. 12. 22:29
WebApi 프로젝트를 생성하면 기본적으로 Swagger 관련 라이브러리가 Injection 되어있다. 해당 라이브러리를 통해 Swagger 문서를 생성할 수 있는데, 그냥 기본 설정값만 쓴다면 Swagger를 제대로 이용할 수 없다. 이번 단계를 통해 Swagger를 한층 더 "고오급스럽게" 사용하여 클라이언트쪽 개발자들에게 보다 쉬운 소스 설명과 더 나아가 소스 자동화 기능을 통해 덜 일하고, 더 받아가는(?) 즐거운 개발생활을 즐길 수 있길 바란다. swagger_1_comments 란 이름의 ASPNET Core WebApi 프로젝트 생성 후 아래와 같이 수행하자. 1. GenerateDocumentationFile 옵션 추가 프로젝트파일(.csproj)에 옵션을 true로 추가한다. 해당 옵션을..
-
[Typescript] swagger로 httpClient code를 자동 생성해주는 도구 swagger-typescript-api 소개Javascript & TypeScript 2023. 1. 29. 11:53
Swagger? 스웨거(Swagger)는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 대부분의 사용자들은 스웨거 UI 도구를 통해 스웨거를 식별하며 스웨거 툴셋에는 자동화된 문서화, 코드 생성, 테스트 케이스 생성 지원이 포함된다. 스웨거 (소프트웨어) - 위키백과, 우리 모두의 백과사전 (wikipedia.org) swagger-typescript-api swagger-typescript-api는 별다른 추가 설정 없이 현재 구현중인 typescript 프로젝트 내 적절한 위치에 추가시킬 수 있는 CLI 명령어 도구이다. acacode/swagger-typescript-api: TypeScript AP..