Spring Boot Tutorial(10)
-
[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 -
[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 -
[Spring Boot Tutorial] 11. REST API Versioning
REST API Versioning api url 분리 및 package 분리 api url spring security permitAll 설정 실행화면 api 와 view를 함께 제공하는 spring 웹 애플리케이션에서, 관리의 용이함과 기능적 편리함을 위해 api controller 패키지를 별도로 분리하는 것이 좋습니다. 또한, 추후 api의 대대적인 수정이 이뤄질 때, api 버전이 올라가는 것을 대비하여 api버전별로 설정해두는 것을 권장합니다.(Versioning) 이번 포스팅에서는 api 관련 컨트롤러를 controllers/api/v1 에 위치시키며, 각 api 컨트롤러의 url 공통적 prefix를 설정합니다. 1. api url 분리 및 package 분리 demo: api: /api/..
2020.03.23