HTTP
-
[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] 세상 간편해진 Video/Audio Streaming.NET/ASP.NET Core 2021. 4. 21. 22:36
예전에 개선된 다운로드 예제를 작성하면서 확인하게된 EnableRangeProcessing 옵션을 테스트해보고자 코드 몇 줄 끄적였다. true로 설정한 채 mp4, mp3 같은 미디어 파일을 반환하면 자동으로 스트리밍 처리가 된다는 것이다. 테스트를 위해 mvc프로젝트를 생성하고 간단한 StreamingController 를 생성해보았다. StreamingController.cs using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace StreamingEx..
-
[Web] querystring을 이용한 캐시 무시(cache busting) 요청은 javascript나 css같은 contents 에 한정된다.ETC 2021. 4. 14. 23:22
그저께 ASP.NET Core에서 캐싱을 활용하는 방법과 예제를 간략하게 다뤘었다. (ddochea.tistory.com/132) 그리고 오늘 관련해서 친구에게 문의가 왔었다. "querystring 값 다르게 하면 캐시 무시할 수 있냐?" 그 질문에 나는 당당하게 "ㅇㅇ" 이라고 대답했다. 왜냐하면 오래 전에 javascript가 캐싱된 일부 브라우저에 수정된 javascript를 일괄적용시킬 수 있도록 사용한 방법이 querystring 을 추가하고, 필요할때마다 값을 바꿔주는 것으로 해결했기 때문이었다. 이것을 "cache busting" 이라고 한다. What is cache busting? · Curtis Timson What is cache busting? · Curtis Timson A ca..
-
[ASP.NET Core] HTTP Cache-Control Header 를 이용한 Get 응답(Response) 캐싱 및 파일 다운로드 예제.NET/ASP.NET Core 2021. 4. 12. 22:34
운영중인 웹 서비스에 대한 수정요청이 있어 작업하던 도중 파일 다운로드기능에 캐싱이 필요하여 응답 캐싱이 가능하도록 작업했다. 사실 사용자 수가 많지 않은 내부서비스라 딱히 적용안해도 되긴 하지만 돈(?) 안되는 트래픽은 줄일 수 있으면 줄이는 습관을 가지는게 좋은지라 적용했다. 적용자체도 그리 어렵지 않다. 1. Startup.cs에 AddResponseCaching() 및 UseResponseCaching() 적용 Startup.cs 에 services.AddResponseCaching()과 app.UseResponseCaching() 함수를 이용하여 캐싱 기능을 적용한다. using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting;..