-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
[randy]Chapter 6. API URL의 설계 & 프로젝트 세팅
- Loading branch information
Showing
2 changed files
with
198 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# Chapter 6. API URL의 설계 & 프로젝트 세팅 | ||
|
||
|
||
## 1️⃣ REST API | ||
|
||
### ✅ API(Application Programming Interface)란 | ||
- 어플리케이션을 프로그래밍할 때, 보다 쉽게 할 수 있도록 해주는 도구들을 의미 | ||
- 응용 프로그램에서 사용할 수 있또록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. - [출처 : 위키백과] | ||
|
||
### ✅ REST(Representational State Transfer)란 | ||
1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, | ||
2. HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 | ||
3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다. | ||
|
||
- ✏️ CRUD Operation | ||
- Create : 데이터 생성(POST) | ||
- Read : 데이터 조회(GET) | ||
- Update : 데이터 수정(PUT, PATCH) | ||
- Delete : 데이터 삭제(DELETE) | ||
|
||
### ✅ REST API란 | ||
- HTTP를 기반으로 하는 웹 서비스 아키텍처를 의미하며 HTTP 메소드와 자원을 이용해 서로 간의 통신을 주고받는 방법 | ||
|
||
### ✅ REST Endpoint란 | ||
- 서비스를 사용 가능하도록 하는 서비스에서 제공하는 커뮤니케이션 채널의 한쪽 끝. 즉 요청을 받아 응답을 제공하는 서비스를 사용할 수 있는 지점을 의미 | ||
|
||
### ✅ HTTP Method | ||
1. GET : 리소스 조회 | ||
2. POST: 요청 데이터 처리, 주로 등록에 사용 | ||
3. PUT : 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성 | ||
4. PATCH : 리소스 부분 변경 (PUT이 전체 변경, PATCH는 일부 변경) | ||
5. DELETE : 리소스 삭제 | ||
|
||
|
||
## 2️⃣ 세부적인 API 설계 | ||
|
||
### ✅ Path Variable(@PathVariable) | ||
- 경로 변수를 표시하기 위해 매개변수에 사용 | ||
- 경로 변수는 중괄호 {id}로 둘러싸인 값을 나타낸다 | ||
- URL 경로에서 변수 값을 추출하여 매개변수에 할당 | ||
|
||
### ✅ Query String | ||
- 사용자가 입력 데이터를 전달하는 방법중의 하나로, url 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것을 말함 | ||
- query parameters( 물음표 뒤에 = 로 연결된 key value pair 부분)을 url 뒤에 덧붙여서 추가적인 정보를 서버 측에 전달하는 것 | ||
|
||
### ✅ Requset Body | ||
- 서버로 전달되는 실제 데이터를 담고 있음(JSON 형태, form-data 형태) | ||
- 예시 코드 | ||
|
||
``` | ||
{ | ||
“name” : “류장원”, | ||
“phoneNum” : “010-1111-2222”, | ||
"nickName" : "randy", | ||
} | ||
``` | ||
|
||
### ✅ Request Header | ||
- 서버와 전송 시 메타데이터. 즉, **전송에 관련된 기타 정보들이 담기는 부분** | ||
|
||
|
||
|
||
--- | ||
--- | ||
### 🔍 참고 레퍼런스 | ||
1. REST Endpoint 내용 - https://blog.naver.com/ghdalswl77/222401162545 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
|
||
# 6주차 미션 | ||
|
||
## API Endpoint, Request Body, Request Header, query String, Pathvariable이 포함된 API 명세서 만들기! | ||
|
||
### 1️⃣ 홈 화면 | ||
|
||
- API Endpoint | ||
|
||
``` | ||
GET /api/home | ||
``` | ||
|
||
|
||
### 2️⃣ 마이 페이지 리뷰 작성 | ||
|
||
- API Endpoint | ||
``` | ||
POST api/review/{store-id}/upload | ||
``` | ||
|
||
|
||
- Request Body | ||
``` | ||
{ | ||
"store_id" : "1", | ||
"stars" : "4.5", | ||
"content" : "리뷰 내용 작성", | ||
"image" : "음식사진.png" | ||
} | ||
``` | ||
|
||
- Request Header | ||
|
||
``` | ||
Authorization : accessToken (String) | ||
``` | ||
|
||
### 3️⃣ 미션 목록 조회 | ||
|
||
|
||
- API Endpoint | ||
|
||
``` | ||
모든 게시글 조회 : GET api/missions | ||
단일 게시글 조회 : GET api/missions/{mission-id} | ||
``` | ||
|
||
- Request Header | ||
|
||
``` | ||
Authorization : accessToken (String) | ||
``` | ||
|
||
### 4️⃣ 미션 성공 누르기 | ||
|
||
|
||
- API Endpoint | ||
``` | ||
PATCH api/missions/{missoin-id}/success | ||
``` | ||
|
||
- Request Body | ||
``` | ||
{ | ||
"isSuccess" : "complete" | ||
} | ||
``` | ||
|
||
- Request Header | ||
|
||
``` | ||
Authorization : accessToken (String) | ||
``` | ||
### 5️⃣ 회원 가입 하기(소셜 로그인 고려 X) | ||
|
||
|
||
- API Endpoint | ||
|
||
``` | ||
# 서비스 이용 동의 | ||
POST /api/members/signup/service | ||
# 개인정보 입력 | ||
POST /api/members/signup/info | ||
# 선호 음식 선택 | ||
POST /api/members/signup/prefer-food | ||
``` | ||
|
||
- Request Body | ||
|
||
``` | ||
# 서비스 이용 동의 | ||
{ | ||
"total_agree" : "true", | ||
"age_agree" : "true", | ||
"service_agree" : "true", | ||
"privacy_agree" : "true", | ||
"location_agree" : "true", | ||
"marketing_agree" : "true" | ||
} | ||
# 개인정보 입력 | ||
{ | ||
"member_id" : "1", | ||
"name" : "류장원", | ||
"gender" : "male", | ||
"birth" : "2001-03-19", | ||
"address" : "서울특별시 동작구 상도동" | ||
} | ||
# 선호 음식 선택 | ||
{ | ||
"prefer_food" : "한식" | ||
} | ||
``` | ||
|
||
- Request Header | ||
|
||
``` | ||
Authorization : accessToken (String) | ||
``` |