-
스프링 부트 API 작성 방법SpringBoot 북 스터디 2023. 4. 29. 20:32
GET API 만들기
GET API는 웹 애플리케이션 서버에서 값을 가져올 때 사용하는 API이다.
컨트롤러 클래스에 @RestController와 @RequestMapping설정하면 아래와 같다.
@RestController @RequestMapping("/api") public class GetController{ }
클래스 수준에서 @ReqestMapping을 설정하면 내부에 선언한 메서드의 URL 리소스 앞에 @RequestMapping의 값이 공통 값으로 추가된다.
※ 스프링 4.3 버전 이후로는
- @GetMapping
- @PostMapping
- @PutMapping
- @DeleteMapping
을 사용하기 때문에 @RequestMapping 어노테이션은 더 이상 사용되지 않는다.
GET 메서드 구현에는 4가지 방법이 존재한다.
- 매개변수가없는 GET 메서드 구현
- @PathVariable을 활용한 GET메서드 구현
- @RequestParam을 활용한 GET메서드 구현
- DTO객체를 활용한 GET메서드 구현
POST API 만들기
POST API는 웹 애플리케이션을 통해 데이터베이스 등의 저장소에 리소스를 저장할 때 사용되는 API입니다.
POST API에서는 저장하고자 하는 리소스나 값을 HTTP body에 담아 서버에 전달합니다.
POST API 메서드 구현에는 @RequestBody를 사용합니다.
Body 영역에 작성되는 값은 일정한 형태를 취하며, 일반적으로 Json형식으로 전송됩니다.
PUT API 만들기
POST API와 비교하면 요청을 받아 실제 데이터베이스에 반영하는 과정에서 차이가 있지만 컨트롤러 클래스를 구현하는 방법은 POST API와 거의 동일합니다. 리소스를 서버에 전달하기 위해 HTTP Body를 사용합니다.
PUT API도 POST 메서드와 마찬가지로 @RequestBody를 사용합니다.
서버에 어떤 값이 들어올지 모르는 경우에는 Map 객체를 활용해 값을 받을 수 있습니다.
DELETE API 만들기
DELETE API는 웹 애플리케이션 서버를 거쳐 데이터베이스 등의 저장소에 있는 리소스를 삭제할 때 사용합니다. 서버에서는 클라이언트로부터 리소스를 식별할 수 있는 값을 받아 데이터베이스나 캐시에 있는 리소스를 조회하고 삭제하는 역할을 수행합니다.
Logback
로깅이란 애플리케이션이 동작하는 동안 시스템의 상태나 동작 정보를 시간순으로 기록하는 것을 의미합니다.
로깅은 개발 영역 중 '비기능 요구사항'에 속합니다. 즉, 사용자나 고객에게 필요한 기능은 아니라는 의미입니다.
자바 진영에서 가장 많이 사용되는 로깅 프레임워크는 Logback입니다. Logback이란 log4j 이후에 출시된 로깅 프레임워크로서 slf4j를 기반으로 구현되었스며, 과거에 사용된 log4j에 비해 월등한 성능을 가지고 있습니다. 또한 스프링 부트의 spring-boot-starter-web에 내장되어 있기에 별도의 의존성 추가를 필요로 하지 않습니다.
Logback설정
일반적으로 classpath에 있는 설정 파일을 자동으로 참조하므로 logback 설정 파일은 리소스 폴더 안에 생성합니다. 파일명의 경우 일반적인 자바 또는 스피링 프로젝트에서는 logback.xml이라는 이름으로 참조하나, 스프링 부트에서는 logback-spring.xml 파일을 참조합니다. 따라서 resources 패키지 안에 logback-spring.xml파일을 추가합니다.
Appender영역
Appender 영역은 로그의 형태를 설정하고 어떤 방법으로 출력할지를 설정하는 곳입니다. Appender자체는 하나의 인터페이스를 의미하며, 하위에 여러 구현체가 존재합니다.
- ConsoleAppender : 콘솔에 로그를 출력
- FileAppender : 파일에 로그를 저장
- RollingFileAppender : 여러 개의 파일을 순회하면서 로그를 저장
- SMTPAppender : 메일로 로그를 전송
- DBAppender : 데이터베이스에 로그를 저장
Reference : 스프링부트 핵심가이드 - 스프링부트를 활용한 애플리케이션 개발 실무_장정우 저
'SpringBoot 북 스터디' 카테고리의 다른 글
개발 기초 지식 (0) 2023.04.26 스프링 부트(Spring Boot)란 (0) 2023.04.26