아래 코드를 추가해주면 됩니다. builder.Services.AddSwaggerGen(c => { c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() { Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer", BearerFormat = "JWT", In = ParameterLocation.Header, Description = "JWT Authorization header using the Bearer scheme." }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurit..
ASP.Net에서 WebAPI endpoint 호출시 JSON형식 응답 메세지의 property name을 camel case로 변환하도록 기본 설정되어 있습니다. C#에서는 public class 멤버 변수의 이름을 Pascal Case를 주로 쓰기 때문에 camel case 변환을 원하지 않는 경우 아래 코드를 program.cs 파일에 추가해주시면 됩니다. builder.Services .AddControllersWithViews() .AddJsonOptions(opt => opt.JsonSerializerOptions.PropertyNamingPolicy = null);
초기 WebAPI 프로젝트를 할 때 테스트를 위해 모든 origin을 허용하는 CORS 설정이 필요할 때가 있습니다. 아래와 같이 간단히 "corsapp" 이름의 policy를 하나 추가한 다음 builder 빌드 후에 app.UseCors를 호출해주면 됩니다. builder.Services.AddCors(p => p.AddPolicy("corsapp", builder => { builder.WithOrigins("*").AllowAnyMethod().AllowAnyHeader(); })); var app = builder.Build(); app.UseCors("corsapp");
종종 가변적인 구조의 JSON 데이터를 C#에서 다뤄야 할 경우나 혹은 JSON내의 특정 데이터만 추출 혹은 수정을 원할경우 일일이 맵핑할 class들을 만들어서 JSON 데이터를 다루기보다 JObject로 parsing 후 아래와 같이 SelectToken/SelectTokes 함수들을 사용해서 원하는 token을 찾아서 값을 가져오거나 조작하는 것이 훨씬 효율적입니다. 원문: https://www.newtonsoft.com/json/help/html/SelectToken.htm 1. SelectToken SelectToken은 JToken을 리턴하는 method이며 하위 토큰에 대한 문자열 경로를 사용합니다. SelectToken은 하위 토큰을 반환하거나 경로 위치에서 토큰을 찾을 수 없는 경우 nu..
보통 JSON Serialization 후 텍스트 파일 형태로 저장하거나 DB에 저장하거나 하는데, enum 값이 숫자 형태로 저장되어서 JSON 문자열을 열어볼 때 readbility가 떨어집니다. 그래서 enum 타입 변수의 값이 문자열 형태로 저장 하는 경우가 많은데요, 그럴 때 아래와 같이 attribute를 특정 멤버 변수에 선언해주면 됩니다. using Newtonsoft.Json; using Newtonsoft.Json.Converters; public enum CompanyType { Apple, Samsung, } public class Company { [JsonConverter(typeof(StringEnumConverter))] public CompanyType CompanyType..
ASP.Net core WebAPI 템플릿으로 프로젝트 생성 후 Angular나 React 프로젝트로 frontend를 만들어서 production build된 static files를 WebAPI 프로젝트에 포함시키는 시나리오의 경우 WebAPI 프로젝트 빌드시에 wwwroot 폴더 내 모든 파일이 output이나 publish 경로에 포함되도록 프로젝트 파일을 설정 해줘야 합니다. Visual Studio에서 wwwroot 폴더 하위 파일들 속성 하나하나 설정 하는 방법도 있지만 wwwroot 폴더 내에 새로운 파일이 생긴다던가 이름이 바뀔때마다 재 설정 해줘야하는 번거로움이 생기므로 아래와 같이 프로젝트 파일에 한 줄 추가하면 해결 됩니다.