|
| 1 | +# Chapter 6. API URL의 설계 & 프로젝트 세팅 |
| 2 | + |
| 3 | + |
| 4 | +## 1️⃣ REST API |
| 5 | + |
| 6 | +### ✅ API(Application Programming Interface)란 |
| 7 | +- 어플리케이션을 프로그래밍할 때, 보다 쉽게 할 수 있도록 해주는 도구들을 의미 |
| 8 | +- 응용 프로그램에서 사용할 수 있또록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. - [출처 : 위키백과] |
| 9 | + |
| 10 | +### ✅ REST(Representational State Transfer)란 |
| 11 | +1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, |
| 12 | +2. HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 |
| 13 | +3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다. |
| 14 | + |
| 15 | +- ✏️ CRUD Operation |
| 16 | + - Create : 데이터 생성(POST) |
| 17 | + - Read : 데이터 조회(GET) |
| 18 | + - Update : 데이터 수정(PUT, PATCH) |
| 19 | + - Delete : 데이터 삭제(DELETE) |
| 20 | + |
| 21 | +### ✅ REST API란 |
| 22 | +- HTTP를 기반으로 하는 웹 서비스 아키텍처를 의미하며 HTTP 메소드와 자원을 이용해 서로 간의 통신을 주고받는 방법 |
| 23 | + |
| 24 | +### ✅ REST Endpoint란 |
| 25 | +- 서비스를 사용 가능하도록 하는 서비스에서 제공하는 커뮤니케이션 채널의 한쪽 끝. 즉 요청을 받아 응답을 제공하는 서비스를 사용할 수 있는 지점을 의미 |
| 26 | + |
| 27 | +### ✅ HTTP Method |
| 28 | +1. GET : 리소스 조회 |
| 29 | +2. POST: 요청 데이터 처리, 주로 등록에 사용 |
| 30 | +3. PUT : 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성 |
| 31 | +4. PATCH : 리소스 부분 변경 (PUT이 전체 변경, PATCH는 일부 변경) |
| 32 | +5. DELETE : 리소스 삭제 |
| 33 | + |
| 34 | + |
| 35 | +## 2️⃣ 세부적인 API 설계 |
| 36 | + |
| 37 | +### ✅ Path Variable(@PathVariable) |
| 38 | +- 경로 변수를 표시하기 위해 매개변수에 사용 |
| 39 | +- 경로 변수는 중괄호 {id}로 둘러싸인 값을 나타낸다 |
| 40 | +- URL 경로에서 변수 값을 추출하여 매개변수에 할당 |
| 41 | + |
| 42 | +### ✅ Query String |
| 43 | +- 사용자가 입력 데이터를 전달하는 방법중의 하나로, url 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것을 말함 |
| 44 | +- query parameters( 물음표 뒤에 = 로 연결된 key value pair 부분)을 url 뒤에 덧붙여서 추가적인 정보를 서버 측에 전달하는 것 |
| 45 | + |
| 46 | +### ✅ Requset Body |
| 47 | +- 서버로 전달되는 실제 데이터를 담고 있음(JSON 형태, form-data 형태) |
| 48 | +- 예시 코드 |
| 49 | + |
| 50 | +``` |
| 51 | +{ |
| 52 | + “name” : “류장원”, |
| 53 | + “phoneNum” : “010-1111-2222”, |
| 54 | + "nickName" : "randy", |
| 55 | +} |
| 56 | +``` |
| 57 | + |
| 58 | +### ✅ Request Header |
| 59 | +- 서버와 전송 시 메타데이터. 즉, **전송에 관련된 기타 정보들이 담기는 부분** |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | +--- |
| 64 | +--- |
| 65 | +### 🔍 참고 레퍼런스 |
| 66 | +1. REST Endpoint 내용 - https://blog.naver.com/ghdalswl77/222401162545 |
| 67 | + |
0 commit comments