Spring Rest Api 만들기 프로젝트
0. 개요
- SpringBoot2 framework 기반에서 RESTful api 서비스를 Step by Step으로 만들어 나가는 프로젝트
- daddyprogrammer.org에서 연재 및 소스 Github 등록
1. 개발환경
- Java 8~11
- SpringBoot 2.x
- SpringSecurity 5.x
- JPA, H2
- Intellij Community
2. 프로젝트 실행
- H2 database 설치
- intellij lombok 플러그인 설치
- Preferences -> Plugins -> Browse repositories... -> search lombok -> Install "IntelliJ Lombok plugin"
- Enable annotation processing
- Preferences - Annotation Procesors - Enable annotation processing 체크
- build.gradle에 lombok 추가(Git을 받은경우 이미 추가되어있음)
- compileOnly 'org.projectlombok:lombok:1.16.16'
- 실행
- Run -> SpringBootApiApplication
- Swagger
3. DDL
create table user ( msrl bigint not null auto_increment, name varchar(100) not null, password varchar(100), provider varchar(100), uid varchar(50) not null, primary key (msrl) ) engine=InnoDB;
create table user_roles ( user_msrl bigint not null, roles varchar(255) ) engine=InnoDB;
alter table user add constraint UK_a7hlm8sj8kmijx6ucp7wfyt31 unique (uid);
alter table user_roles add constraint FKel3d4qj41g0sy1mtp4sh055g7 foreign key (user_msrl) references user (msrl);
4. 목차
- SpringBoot2로 Rest api 만들기(1) – Intellij Community에서 프로젝트생성
- SpringBoot2로 Rest api 만들기(2) – HelloWorld
- SpringBoot2로 Rest api 만들기(3) – H2 Database 연동
- SpringBoot2로 Rest api 만들기(4) – Swagger API 문서 자동화
- SpringBoot2로 Rest api 만들기(5) – API 인터페이스 및 결과 데이터 구조 설계
- SpringBoot2로 Rest api 만들기(6) – ControllerAdvice를 이용한 Exception처리
- SpringBoot2로 Rest api 만들기(7) – MessageSource를 이용한 Exception 처리
- SpringBoot2로 Rest api 만들기(8) – SpringSecurity를 이용한 인증 및 권한부여
- SpringBoot2로 Rest api 만들기(9) – Unit Test
- SpringBoot2로 Rest api 만들기(10) – Social Login kakao
- SpringBoot2로 Rest api 만들기(11) – profile을 이용한 환경별 설정 분리
- SpringBoot2로 Rest api 만들기(12) – Deploy & Nginx 연동 & 무중단 배포 하기
- SpringBoot2로 Rest api 만들기(13) – Jenkins 배포(Deploy) + Git Tag Rollback
- SpringBoot2로 Rest api 만들기(14) – 간단한 JPA 게시판(board) 만들기
- SpringBoot2로 Rest api 만들기(15) – Redis로 api 결과 캐싱(Caching)처리
- SpringBoot2로 Rest api 만들기(16) – AOP와 Custom Annotation을 이용한 금칙어(Forbidden Word) 처리