728x90
Chapter 3. API URL의 설계 & 프로젝트 세팅 워크북
🎯핵심 키워드 정리
🔹RestFul API
- 자원(URI) 기반: RESTful API는 서버의 모든 데이터 또는 기능을 하나의 '자원(Resource)'으로 간주한다. 각 자원은 고유한 식별자(URI)로 식별되며, 클라이언트는 이 URI를 통해 자원에 접근할 수 있다.
💡 사용자 정보를 반환하는 응답의 경우:
- 표현의 통일성: RESTful API는 요청을 통해 반환되는 자원의 표현이 일관되어야 하며, 이를 통해 클라이언트가 자원에 대한 이해를 쉽게 할 수 있다.
- 캐시 가능성: RESTful API는 클라이언트의 요청에 대해 캐싱이 가능해야 한다. 이를 통해 응답 시간을 향상시키고 서버의 부하를 줄일 수 있다. 응답에는 캐시 관련 헤더가 포함되어 클라이언트가 해당 응답을 캐시할지 여부를 결정할 수 있다.
- 계층화된 시스템 구조: RESTful 아키텍처는 계층 구조를 갖고 있어, 클라이언트는 API 서버가 직접 데이터베이스와 통신하는지, 다른 서비스와 통신하는지, 또는 여러 계층을 거쳐 통신하는지 알 필요가 없다.
🔹 개념 마인드맵 정리
☑️ 실습 인증
1. 명령어 실행 후 오류 확인
node src/index.js
2. type: “module”을 추가한 후 실행
3. Setting.json 파일을 생성 코드 작성
4. script 수정
npm run start
5. localhost 3000 실행된 것 확인 완료
🔥 미션 인증
API 명세서
1. 회원 가입 (회원 가입하기 기능)
- 설명: 새로운 사용자를 등록
- Endpoint: POST /api/users/register
- Request Body:
{
"user_name": "string",
"password": "string",
"email": "string"
}
- Response:
- 201 Created: 사용자 등록 성공
- 400 Bad Request: 잘못된 입력 값
2. 홈 화면 - 내가 받은 미션 목록 조회 (진행중, 완료 포함)
- 설명: 사용자가 받은 미션들을 조회
- Endpoint: GET /api/missions
- Query String:
- status: in-progress 또는 completed (필터링)
- Request Header:
- Authorization: Bearer <token>
- Response:
[
{
"mission_id": 1,
"description": "미션 설명",
"mission_status": "수행 중",
"region": "Seoul",
"created_at": "2024-10-08T10:15:30"
},
{
"mission_id": 2,
"description": "미션 설명",
"mission_status": "완료",
"region": "Busan",
"created_at": "2024-10-05T09:00:00"
}
]
3. 마이 페이지 - 리뷰 작성 (리뷰 작성 기능)
- 설명: 사용자가 가게에 대한 리뷰를 작성
- Endpoint: POST /api/reviews
- Request Body:
{
"store_id": 1,
"rating": 5,
"review_text": "리뷰 내용"
}
- Request Header:
- Authorization: Bearer <token>
- Content-Type: application/json
- Response:
- 201 Created: 리뷰 작성 성공
- 400 Bad Request: 잘못된 입력 값
4. 미션 목록 조회 (진행 중인 미션과 완료된 미션)
- 설명: 사용자가 진행 중인 미션 또는 완료된 미션 목록을 조회
- Endpoint: GET /api/users/{user_id}/missions
- Query String:
- status: in-progress 또는 completed
- Path Variable:
- user_id: 조회할 사용자의 ID
- Request Header:
- Authorization: Bearer <token>
- Response:
[
{
"mission_id": 1,
"description": "미션 설명",
"status": "진행 중",
"completed_at": null},
{
"mission_id": 2,
"description": "미션 설명",
"status": "완료",
"completed_at": "2024-10-05T12:34:56"
}
]
5. 미션 성공 누르기 (미션 완료 처리)
- 설명: 사용자가 미션을 완료로 변경.
- Endpoint: PATCH /api/missions/{mission_id}/complete
- Path Variable:
- mission_id: 완료 처리할 미션의 ID
- Request Header:
- Authorization: Bearer <token>
- Response:
- 200 OK: 미션 완료 성공
- 400 Bad Request: 미션 상태가 이미 완료되었거나 유효하지 않은 경우
728x90
'🏃♀️ 대외활동 > UMC 7기 - Node.js' 카테고리의 다른 글
[UMC 7th Server] Chapter 5. ES6와 프로젝트 파일 구조의 이해 (4) | 2024.10.28 |
---|---|
[UMC 7th Server] Chapter 4. ES6와 프로젝트 파일 구조의 이해 (1) | 2024.10.28 |
[UMC 7th Server] Chapter 2. 실전 SQL 워크북 (1) | 2024.10.06 |
[UMC 7th Server] Chapter 1. Database 설계 워크북 (3) | 2024.09.26 |
[UMC 7th Server] Chapter 0. 서버 처음 해보기 워크북 (4) | 2024.09.26 |