이 프로젝트는 인증서비스 및 회원정보, 주문정보 조회에 대한 Swagger UI 2.0 기반 API를 제공합니다.
- Spring Boot 2.4.4
- Gradle 6.7
- Swagger 2.9.2
- QueryDSL 4.4.0
- JDK 11
- Gradle
- Docker
- Docker Compose (Windows에서는 Docker Desktop이 설치되어있다면, 이미 설치가 되어있습니다.)
프로젝트 최상위 디렉터리 내 존재하는 "docker-compose.yml"에 작성된 스크립트 기반으로 도커 컨테이너가 자동 배포되고 실행됩니다.
$ docker-compose -f docker-compose.yml up -d
인증 토큰을 관리하는 Redis 서버와 관계형 데이터 저장목적의 MySQL 자동으로 배포됩니다.
mysql 사용자 인증정보
username | password |
---|---|
sypark | qwe1212!Q |
위 사용자는 MySQL 초기화 sql에 의해, idus_market_% 의 접근권한을 가지고있습니다.
참고) ./mysql-init-files/idus_market-database.sql
원활한 API 기능 테스트 수행을 위해, 사용자 및 주문 정보 샘플 데이터가 존재합니다. 아래 <표1>, <표2>는 샘플 데이터 표입니다.
<표1> 사용자 샘플데이터
id | name | nick | password | phoneNumber | gender | roles | createdAt | modifiedAt | |
---|---|---|---|---|---|---|---|---|---|
1 | 테스트Aa | testa | qwe1212!QQ | 010-0000-0000 | [email protected] | Male | ROLE_USER,ROLE_ADMIN | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
2 | 테스트Bb | testb | qwe1212!QQ | 010-0000-0000 | [email protected] | Female | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
3 | 테스트Cc | testc | qwe1212!QQ | 010-0000-0000 | [email protected] | Male | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
4 | 테스트Dd | testd | qwe1212!QQ | 010-0000-0000 | [email protected] | Female | ROLE_USER,ROLE_ADMIN | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
5 | 테스트Ee | teste | qwe1212!QQ | 010-0000-0000 | [email protected] | Male | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
6 | 테스트Ff | testf | qwe1212!QQ | 010-0000-0000 | [email protected] | ROLE_USER,ROLE_ADMIN | sql 작성 날짜 기준 | sql 작성 날짜 기준 | |
7 | 테스트Gg | testg | qwe1212!QQ | 010-0000-0000 | [email protected] | Male | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
8 | 테스트Hh | testh | qwe1212!QQ | 010-0000-0000 | [email protected] | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 | |
9 | 테스트Ii | testi | qwe1212!QQ | 010-0000-0000 | [email protected] | Male | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
10 | 테스트Jj | testj | qwe1212!QQ | 010-0000-0000 | [email protected] | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 | |
11 | 테스트Kk | testk | qwe1212!QQ | 010-0000-0000 | [email protected] | Male | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
12 | 테스트Ll | testl | qwe1212!QQ | 010-0000-0000 | [email protected] | Female | ROLE_USER,ROLE_ADMIN | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
13 | 테스트Mm | testm | qwe1212!QQ | 010-0000-0000 | [email protected] | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 | |
14 | 테스트Nn | testn | qwe1212!QQ | 010-0000-0000 | [email protected] | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 | |
15 | 테스트Oo | testo | qwe1212!QQ | 010-0000-0000 | [email protected] | Male | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
16 | 테스트Pp | testp | qwe1212!QQ | 010-0000-0000 | [email protected] | Female | ROLE_USER,ROLE_ADMIN | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
17 | 테스트Qq | testq | qwe1212!QQ | 010-0000-0000 | [email protected] | Male | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
18 | 테스트Rr | testr | qwe1212!QQ | 010-0000-0000 | [email protected] | Female | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
19 | 테스트Ss | tests | qwe1212!QQ | 010-0000-0000 | [email protected] | Male | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
20 | 테스트Tt | testt | qwe1212!QQ | 010-0000-0000 | [email protected] | Female | ROLE_USER | sql 작성 날짜 기준 | sql 작성 날짜 기준 |
<표2> 주문 정보 샘플데이터
id | orderId | name | createdAt | modifiedAt | userId |
---|---|---|---|---|---|
1 | 1JYDB23Z7Q9M | 무료배송🏆 어버이날 카네이션 꽃 무드등 부모님선물 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 1 |
2 | US0Q0EX1HMJN | 🍓크림치즈딸기 스콘🍓 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 2 |
3 | 1IAUULAKON22 | 인기💘마블대리석 톡+폰케이스 그립 커플 생일선물 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 3 |
4 | QDY8ZB72IA7N | 나만의 문구를 새긴 꽃 스마트톡 그립 + 핸드폰케이스 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 4 |
5 | UBUPQVMOLW85 | 커플 이니셜 폰케이스 ❤ | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 5 |
6 | U7WTRLLRUGXC | 🎁랜덤🎁2+1 스마트톡 가성비갑 2000원의 찐행복 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 5 |
7 | 1H7RGLTUIJ49 | 재입고💕심플무드 볼드스트랩 체인 폰케이스 생일선물 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 6 |
8 | U7RALR4N361T | 🌈이니셜 커플 아이폰/갤럭시 컬러 폰케이스🌈 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 7 |
9 | 1HRBEMY1KX25 | ❤️인물 스마트톡+폰케이스 커플 그립 생일선물 어버이날 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 8 |
10 | RHM5ZSN8I63M | 신상세트초특가할인♥ 잉크워터ver.3 커플 스마트톡 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 9 |
11 | QHSVNQ1KAPUP | 호밤고구마👍무농약인증🍠2021고구마플렉스‼ | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 11 |
12 | VBK8DUBPVBCH | 37%할인🔥1+등급 한우 사골국 🔥48시간우려낸! | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 13 |
13 | VF998T8ZILGX | 🏆최우수작가상🏆쫀득쫀득 탱탱 전남장흥 '무태장어' | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 15 |
14 | URMVWXOXB8S1 | 필름앨범📷 어버이날,커플,생일선물❤ | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 17 |
15 | 1IYEXLUTB0U2 | 어버이날 선물 🤩인간화환🤩 생일선물 커플 카네이션 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 18 |
16 | RLAM299CMHBL | 💮💮예약접수중/어버이날,스승의날 최고의 선물💮💮 | sql 작성 날짜 기준 | sql 작성 날짜 기준 | 18 |
이 프로젝트를 빌드하기 위해, gradle 커맨드를 사용하고 java 커맨드를 통해, 빌드 결과물 jar 파일을 실행합니다.
Gradle 커맨드를 사용하여, 프로젝트 빌드를 수행합니다.
$ gradle build
Java 커맨드를 사용하여, 빌드 결과물 jar 파일을 실행합니다.
$ java -jar ./build/libs/market-1.0.0.jar
Swagger 페이지 : http://localhost:8080/swagger-ui.html
유효 값에 따라 항목을 입력 후, 회원가입을 진행합니다.
회원가입 시 작성한 이매일과 비밀번호를 입력하여 얻어진 message 키 값(X-Auth-Token)을 획득합니다. 획득한 값을 우측 상단 Authorize 버튼을 클릭하여 입력합니다. X-Auth-Token은 (bearer 공백 키값) 구성으로 작성합니다.
입력 예시)bearer eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MTIifQ.eyJpc3MiOiJ0ZXN0QGFhLmE5IiwiZXhwIjoxNjE4NjQ4MTE0LCJpYXQiOjE2MTg2NDY5MTQsImVtYWlsIjoidGVzdEBhYS5hOSJ9.Hr8zeUPauJFIuRvRLkQxjMS5owVQxJ_OHPRiOYhmcRve6ShZyNDKaIOxZrnSrlfu5GeruI2_qEjwANhLGxNaWQ
발급받은 토큰은 발급 시간 기준 15분동안 유효합니다. 토큰이 만료될 경우, 접근 권한이 없는 API 호출시 HTTP STATUS 403 코드와 함께 에러가 발생합니다.
API | HTTP 메서드 | 권한 | 설명 |
---|---|---|---|
/api/v1/auth/join | POST | Anonymous | 회원가입을 수행합니다 |
/api/v1/auth/login | POST | Anonymous | 로그인을 수행합니다 |
/api/v1/auth/logout | POST | Anonymous | 로그아웃을 수행합니다 |
/api/v1/orders | GET | Admin | 사용자의 주문정보를 조회합니다 |
/api/v1/orders | POST | Admin, User | 로그인된 사용자의 주문을 등록합니다 |
/api/v1/user | GET | Admin | 사용자 목록을 조회합니다 |
/api/v1/user/{email} | GET | Admin | 사용자를 조회합니다 |