SpringRestApi
SpringRestApi copied to clipboard
SpringBoot2, SpringSecurity, JWT, Stateless Restful API
Spring Rest Api 만들기 프로젝트
0. 개요
- SpringBoot2 framework 기반에서 RESTful api 서비스를 Step by Step으로 만들어 나가는 프로젝트
- daddyprogrammer.org에서 연재 및 소스 Github 등록
- https://daddyprogrammer.org/post/series/springboot2-make-rest-api/
1. 개발환경
- Java 8~11
- SpringBoot 2.x
- SpringSecurity 5.x
- JPA, H2
- Intellij Community
2. 프로젝트 실행
- H2 database 설치
- https://www.h2database.com/html/download.html
- 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
- http://localhost:8080/swagger-ui.html
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에서 프로젝트생성
- Document
- https://daddyprogrammer.org/post/19/spring-boot1-start-intellij/
- Document
- SpringBoot2로 Rest api 만들기(2) – HelloWorld
- Document
- https://daddyprogrammer.org/post/41/spring-boot2-helloworld/
- Document
- SpringBoot2로 Rest api 만들기(3) – H2 Database 연동
- Document
- https://daddyprogrammer.org/post/152/spring-boot2-h2-database-intergrate/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/h2
- Document
- SpringBoot2로 Rest api 만들기(4) – Swagger API 문서 자동화
- Document
- https://daddyprogrammer.org/post/313/swagger-api-doc/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/swagger
- Document
- SpringBoot2로 Rest api 만들기(5) – API 인터페이스 및 결과 데이터 구조 설계
- Document
- https://daddyprogrammer.org/post/404/spring-boot2-5-design-api-interface-and-data-structure/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/api-structure
- Document
- SpringBoot2로 Rest api 만들기(6) – ControllerAdvice를 이용한 Exception처리
- Document
- https://daddyprogrammer.org/post/446/spring-boot2-5-exception-handling/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/controller-advice
- Document
- SpringBoot2로 Rest api 만들기(7) – MessageSource를 이용한 Exception 처리
- Document
- https://daddyprogrammer.org/post/499/springboot2-message-exception-handling-with-controlleradvice/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/messagesource
- Document
- SpringBoot2로 Rest api 만들기(8) – SpringSecurity를 이용한 인증 및 권한부여
- Document
- https://daddyprogrammer.org/post/636/springboot2-springsecurity-authentication-authorization/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/security
- Document
- SpringBoot2로 Rest api 만들기(9) – Unit Test
- Document
- https://daddyprogrammer.org/post/938/springboot2-restapi-unit-test/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/junit-test
- Document
- SpringBoot2로 Rest api 만들기(10) – Social Login kakao
- Document
- https://daddyprogrammer.org/post/1012/springboot2-rest-api-social-login-kakao/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/social-kakao
- Document
- SpringBoot2로 Rest api 만들기(11) – profile을 이용한 환경별 설정 분리
- Document
- https://daddyprogrammer.org/post/2421/springboot2-seperate-environment-by-profile/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/seperate-profile
- Document
- SpringBoot2로 Rest api 만들기(12) – Deploy & Nginx 연동 & 무중단 배포 하기
- Document
- https://daddyprogrammer.org/post/2445/springboot2-blue-green-deploy-nginx/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/gracefullyshutdown
- Document
- SpringBoot2로 Rest api 만들기(13) – Jenkins 배포(Deploy) + Git Tag Rollback
- Document
- https://daddyprogrammer.org/post/2697/springboot2-jenkins-deploy-gittag-rollback/
- Document
- SpringBoot2로 Rest api 만들기(14) – 간단한 JPA 게시판(board) 만들기
- Document
- https://daddyprogrammer.org/post/2695/springboot2-simple-jpa-board/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/board
- Document
- SpringBoot2로 Rest api 만들기(15) – Redis로 api 결과 캐싱(Caching)처리
- Document
- https://daddyprogrammer.org/post/3870/spring-rest-api-redis-caching/
- Git
- https://github.com/codej99/SpringRestApi/tree/cache-data-redis
- Document
- SpringBoot2로 Rest api 만들기(16) – AOP와 Custom Annotation을 이용한 금칙어(Forbidden Word) 처리
- Document
- https://daddyprogrammer.org/post/11356/springboot2-forbidden-word-by-aop-annotation/
- Git
- https://github.com/codej99/SpringRestApi/tree/feature/block_fobidden_word
- Document