Spring Boot(22)
-
[Spring Boot Tutorial] 15. Open API 3.0 + Swagger v3 상세설정
api 그룹 설정 : @Tag api Schema 설정 : @Schema api 상세 정보 설정 : @Operation api response 설정 : @ApiResponse api parameter 설정 : @Parameter 이전시간에 OpenAPI info 정보만 설정했었습니다. Schemas 에 대한 설명과 들어갈 값에대한 정보도 없고, api method에 대한 설명도 없어서 api 이용에 불편함이 있습니다. 이번시간에는 Swagger v3 Annotation을 이용하여 API 문서의 설명을 구체적으로 작성하고, Java Bean Validation 을 이용하여 api 사용시 유효성 체크를 합니다. 1. api 그룹 설정 : @Tag Target : ANNOTATION_TYPE, METHOD, ..
2020.07.17 -
[Spring Boot Tutorial] 14. build 환경별 profile 적용하기
웹 애플리케이션을 배포할 때, 서버 환경별로 값을 달리해야 하는 값들이 있을 수 있습니다. 예를들면, 로컬에서 테스트하는 database 접속 정보와 실 서버에서 이용하는 database 접속 정보가 다를 수 있을 것이고. 그 외에도 특정 폴더 경로의 절대경로의 경우에도. 리눅스 기반 서버와 Windows 서버의 폴더구조가 다르기에 값을 달리 작성해야하는 필요가 생깁니다. [Spring Boot] 프로퍼티 파일(yml) 여러개 설정하기 포스팅에서는 긴 프로퍼티 파일을 성질에 따라 쪼개어, 2개 이상의 프로퍼티 파일을 읽어들이는 방법을 알아보았다면, 이번 시간에는 서버 환경별로 활성화 시킬 프로퍼티 파일을 선택하여 배포할 수 있도록 하는 방법을 배워볼 것입니다. 프로파일 폴더 구조 프로파일별 프로퍼티 설정..
2020.06.29 -
[Spring Boot Tutorial] 13. OpenAPI 3.0를 이용한 REST API 문서 만들기 (Swagger v3)
OpenAPI 3.0 OAS 란? Swagger 란? springdoc-openapi 설정 의존성 라이브러리 추가 프로퍼티 설정 (operations-sorter, display-query-params-without-oauth2) Swagger Info 설정 Swagger-ui 실행 /swagger-ui/index.html Swagger-ui 실행 및 csrf token 문제점 2. 설정 2.1. 의존성 라이브러리 추가 pom.xml에 springdoc-openapi 을 추가합니다. org.springdoc springdoc-openapi-ui 1.6.6 2.2. 프로퍼티 설정 springdoc: version: '@project.version@' api-docs: path: /api-..
2020.06.18 -
[Thymeleaf] inline javascript에서 유니코드로 표기된 한글문자 한글로 표기
thymeleaf inline javascript 에서 문자 그대로 출력하기 swagger 테스트 중에 거슬리는 현상을 발견했습니다. 바로, script 내의 msg가 한글이 아닌 유니코드로 표기되는 문제입니다. 과연.. 한글은 무조건 유니코드로 표기되는것인가 했더니, title에는 한글이 표기되는것을 보니 그 문제는 아닌것 같고. inline javascript에서 문자열 설정하는 과정에서 유니코드로 설정하는 것으로 추측되었습니다. 그럼, 실제 작성된 코드를 살펴보도록 합시다. window.onload = function(){ /* var nextPage = [[@{__${nextPage}__}]], msg = [[${msg}]]; if(nextPage) { alert(msg); location.hre..
2020.06.18 -
[Spring Boot] 프로퍼티 파일(yml) 여러개 설정하기
웹 애플리케이션의 실행 환경에 따른 구성설정의 외부화를 위해 프로퍼티 파일을 사용했습니다. spring boot에는 예약된 프로퍼티 키가 존재하며, 예약된 프로퍼티에 설정을 추가하는 것 만으로도 자동으로 설정을 대신해준다고 했었습니다. spring boot에서 예약된 프로퍼티 키를 이용하는 것 외에도 우리가 직접 프로퍼티를 설정하고 설정한 값을 이용할 수 있습니다. 별도로 추가한 프로퍼티가 많아질 경우에는 파일이 매우 복잡해질수도 있고, 프로퍼티를 확인하것도 불편해질 것입니다. 이에 대한 해결책으로 이번 시간에는 프로퍼티 파일을 여러개 설정하고 웹애플리케이션의 시작시 자동으로 읽어들이는 방법을 알아볼 것입니다. 코드분리 테스트 API Spring Boot 2.4 미만 버전 구성파일 위치 설정 OS의 환경..
2020.05.29 -
[Spring Boot Tutorial] 12. Spring Boot REST Api에 ResponseEntity 적용하기
지금까지 demo프로젝트를 구성할 때, @ResponseBody의 result와 reason 값에 api 요청 결과를 출력했습니다. 그러나, http 프로토콜을 이용하는 통신에는 응답결과를 body이외에 http 상태 코드와 header 를 설정하여 보다 세밀하게 response를 표현할 수 있습니다. ResponseEntity는 HtttHeaders headers와 T body, HttpStatus status를 포함한 클래스입니다 ResponseEntity를 이용하여 demo 프로젝트를 HTTP response 규약을 지키는 rest api로 만들어봅시다. 이론 1-1) HTTP 상태 코드 1-2) 전략 1-3) 기존 api (변경 전) 1-4) 새로 변경될 api 1단계 : Response 클래스 ..
2020.04.22