Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# DB URL
DATABASE_URL=

# 백엔드 포트
BE_PORT=

# 허용해줄 프론트 로컬 포트
HTTP_PORT=

# 나중에 허용해줄 프론트 배포 사이트
HTTPS_PORT=

# 비밀번호 해싱
SALT_ROUNDS=

# JWT SECRET
JWT_SECRET=
JWT_SECRET_REFRESH=

# 토근 만료 시간
ACCESS_TOKEN_EXPIRES_IN=
REFRESH_TOKEN_EXPIRES_IN=
27 changes: 27 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Environment variables
.env

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ _위 이미지는 판다마켓의 대표 이미지입니다. 프로젝트가 진
- Express.js를 이용해 더 복잡한 백엔드 기능을 구현하는 미션입니다. 데이터베이스 연동, 인증 및 권한 관리 등 고급 API 설계가 포함됩니다.
- **스프린트 미션 6부터 12까지**의 백엔드 내용이 들어 있어요.

> _스프린트 미션 내 프론트엔드 요구사항은 [프론트엔드 레포지토리](https://github.com/codeit-sprint-fullstack/5-Sprint-mission-FE)의 브랜치에서 관리해주세요_
> _스프린트 미션 내 프론트엔드 요구사항은 [프론트엔드 레포지토리](https://github.com/codeit-sprint-fullstack/6-Sprint-mission-FE)의 브랜치에서 관리해주세요_

---

Expand Down
30 changes: 30 additions & 0 deletions http/article.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
### 새 게시글 생성
POST http://localhost:5050/articles
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MTg1OTgzLCJleHAiOjE3NDcxODk1ODN9.8KUfvmhW3vn6-TcqzU5nUg5TzZV8bfsWiAa15kVxz0E

{
"title": "새로운 게시글 제목5",
"content": "새로운 게시글 내용"
}

### 모든 게시글 조회
GET http://localhost:5050/articles?orderBy=recent&keyword=

### 특정 게시글 조회
GET http://localhost:5050/articles/1

### 특정 게시글 수정
PATCH http://localhost:5050/articles/1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MTg1OTgzLCJleHAiOjE3NDcxODk1ODN9.8KUfvmhW3vn6-TcqzU5nUg5TzZV8bfsWiAa15kVxz0E

{
"title": "수정된 게시글 제목",
"content": "수정된 게시글 내용"
}

### 특정 게시글 삭제
DELETE http://localhost:5050/articles/4
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MTg1OTgzLCJleHAiOjE3NDcxODk1ODN9.8KUfvmhW3vn6-TcqzU5nUg5TzZV8bfsWiAa15kVxz0E

39 changes: 39 additions & 0 deletions http/auth.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
POST http://localhost:5050/auth/signUp
Content-Type: application/json

{
"email": "test2@test.com",
"nickname": "test2",
"password": "test",
"passwordConfirmation" : "test"
}


###
POST http://localhost:5050/auth/signIn
Content-Type: application/json

{
"email": "test2@test.com",
"password": "test"
}


###
POST http://localhost:5050/auth/refresh-token
Content-Type: application/json

{
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MDE1NTM2LCJleHAiOjE3NDc2MjAzMzZ9.PHPZiGAVNK6ZkOzkGx8UC86JEmpfbrDvZ7zCnR7yzes"
}


###
POST http://localhost:5050/auth/refresh-token
Cookie: refreshToken={"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MDE1NTM2LCJleHAiOjE3NDc2MjAzMzZ9.PHPZiGAVNK6ZkOzkGx8UC86JEmpfbrDvZ7zCnR7yzes"}

###
GET http://localhost:3000/auth/google

###
GET http://localhost:3000/auth/google/callback
46 changes: 46 additions & 0 deletions http/comment.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
### 특정 상품에 댓글 작성
POST http://localhost:5050/comments/products/2
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MzI2MDk2LCJleHAiOjE3NDczMjk2OTZ9.aWrWLpdFO-lisU2dvqL-oLxRBvPUjw1e7_H-jAlxhQ4

{
"content": "상품에 대한 댓글 내용3"
}

###

### 특정 상품의 모든 댓글 조회
GET http://localhost:5050/comments/products/2

###

### 특정 게시글에 댓글 작성
POST http://localhost:5050/comments/articles/2
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MzI2MDk2LCJleHAiOjE3NDczMjk2OTZ9.aWrWLpdFO-lisU2dvqL-oLxRBvPUjw1e7_H-jAlxhQ4

{
"content": "게시글에 대한 댓글 내용1"
}

###

### 특정 게시글의 모든 댓글 조회
GET http://localhost:5050/comments/articles/2

###

### 특정 댓글 수정
PATCH http://localhost:5050/comments/2
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MzI2MDk2LCJleHAiOjE3NDczMjk2OTZ9.aWrWLpdFO-lisU2dvqL-oLxRBvPUjw1e7_H-jAlxhQ4

{
"content": "수정된 댓글 내용"
}

###

### 특정 댓글 삭제
DELETE http://localhost:5050/comments/2
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MzI2MDk2LCJleHAiOjE3NDczMjk2OTZ9.aWrWLpdFO-lisU2dvqL-oLxRBvPUjw1e7_H-jAlxhQ4
24 changes: 24 additions & 0 deletions http/like.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@

### 특정 상품 찜하기
POST http://localhost:5050/like/products/2
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MzI2MDk2LCJleHAiOjE3NDczMjk2OTZ9.aWrWLpdFO-lisU2dvqL-oLxRBvPUjw1e7_H-jAlxhQ4

### 특정 상품 찜 취소
DELETE http://localhost:5050/like/products/2
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MzI2MDk2LCJleHAiOjE3NDczMjk2OTZ9.aWrWLpdFO-lisU2dvqL-oLxRBvPUjw1e7_H-jAlxhQ4



### 특정 게시글 좋아요
POST http://localhost:5050/like/articles/2
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MzI2MDk2LCJleHAiOjE3NDczMjk2OTZ9.aWrWLpdFO-lisU2dvqL-oLxRBvPUjw1e7_H-jAlxhQ4

### 특정 게시글 좋아요 취소
DELETE http://localhost:5050/like/articles/2
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MzI2MDk2LCJleHAiOjE3NDczMjk2OTZ9.aWrWLpdFO-lisU2dvqL-oLxRBvPUjw1e7_H-jAlxhQ4






32 changes: 32 additions & 0 deletions http/product.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
### 새 상품 등록
POST http://localhost:5050/products
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MTg1OTgzLCJleHAiOjE3NDcxODk1ODN9.8KUfvmhW3vn6-TcqzU5nUg5TzZV8bfsWiAa15kVxz0E

{
"name": "새 상품 이름3",
"description": "새 상품 설명",
"price": 10000,
"tags": ["태그1", "태그2"]
}

### 모든 상품 조회
GET http://localhost:5050/products?orderBy=recent&keyword=

### 특정 상품 조회
GET http://localhost:5050/products/2

### 특정 상품 정보 수정
PATCH http://localhost:5050/products/1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MTg1OTgzLCJleHAiOjE3NDcxODk1ODN9.8KUfvmhW3vn6-TcqzU5nUg5TzZV8bfsWiAa15kVxz0E

{
"name": "수정된 상품 이름",
"price": 12000,
"tags": ["태그11", "태그12"]
}

### 특정 상품 삭제
DELETE http://localhost:5050/products/5
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbWFrZXJrdXIwMDAxdzQxZ2Y2YWVvNTdoIiwiaWF0IjoxNzQ3MTg1OTgzLCJleHAiOjE3NDcxODk1ODN9.8KUfvmhW3vn6-TcqzU5nUg5TzZV8bfsWiAa15kVxz0E
33 changes: 33 additions & 0 deletions http/user.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
### 내 정보 조회
GET http://localhost:5050/users/me
Authorization: Bearer <your_access_token> # 인증 필요

### 내 정보 수정
PATCH http://localhost:5050/users/me
Content-Type: application/json
Authorization: Bearer <your_access_token> # 인증 필요

{
"nickname": "새로운닉네임",
"image": "새로운이미지URL"
// 수정할 필드들을 JSON 형태로 포함
}

### 비밀번호 변경
PATCH http://localhost:5050/users/me/password
Content-Type: application/json
Authorization: Bearer <your_access_token> # 인증 필요

{
"currentPassword": "현재비밀번호",
"newPassword": "새로운비밀번호",
"newPasswordConfirmation": "새로운비밀번호확인"
}

### 내가 등록한 상품 조회
GET http://localhost:5050/users/me/products
Authorization: Bearer <your_access_token> # 인증 필요

### 내가 찜한 상품 조회
GET http://localhost:5050/users/me/favorites
Authorization: Bearer <your_access_token> # 인증 필요
Loading