URI란 무엇일까?
URI: URN + URL을 합친 개념으로 리소스를 식별하는 통일된 방식
이름으로 식별하는 경우: URN
위치로 식별하는 경우: URL
REST란?
규칙적이지 않은 네이밍룰로 유지보수가 어렵고, 협업 개발자가 코드 이해가 힘들 수 있다.
그래서 도입된 것이 REST이다.
즉, HTTP로 정보를 보낼 때, URI를 어떻게 설계하고 어떤 메서드를 사용할 것인지 표준으로 정해놓은 개발자들 사이의 약속이다.
API를 설계할 때 아무 규칙없이 개발한다면
예시) 멤버를 가져올 때
/get-member-list
/readMembers
이런식으로 URI가 달라질 수 있다. 가독성이나 생산성이 떨어져 표준을 정한 것이 REST이다!
API는 인터페이스가 핵심인데, API가 사용할 규칙을 만드는 것이다.
API 표준 규칙 중 하나가 REST이고, 이것을 따르는 API를 RESTapi 라고 한다.
HTTP 메서드에는 4가지의 메서드가 있는데, 간단히 정리해보도록 하자
GET: 리소스를 조회
POST: 리소스를 생성
PATCH/PUT: 리소스를 수정
DELETE: 리소스를 삭제
CRUD에 따라 분류하면, GET은 READ, POST는 CREATE, PATCH/PUT은 UPDATE, DELETE는 DELETE로 보면 된다.
PATCH랑 PUT의 차이점이 무엇일까?
PATCH는 일부 리소스만 업데이트할 때 사용되고
PUT은 보내는 요청의 모든 값을 업데이트할 때 사용된다.
<REST API 예시는 다음과 같다>
회원 목록 조회 API : GET 메서드
회원가입 API : POST 메서드
회원정보 수정 API: PATCH/PUT 메서드,
회원탈퇴 API: DELETE 메서드
회원정보 URI는 한가지 URI로 4가지 API 표현이 가능하다.
즉 핵심은 URI를 통해서 리소스를 표현하고, 리소스 행위는 CRUD 오퍼레이션을 따른다는 것이다.
API를 호출할 때 정보를 담고 싶다면, 생성한 리소스에 대한 정보도 서버로 전달해야 한다.
이때 메서드/상황 별로 다르다!
<학생 정보 조회 API 예시>
GET /students: 모든 학생 정보 조회할 때 쓰는 API
특정 학생 이름 정보 전달하려면 필터링해야 가져와야 하는데 QueryString이나 Path Variable 방법을 쓰곤 한다.
QueryString 방법: GET /STUDENTS?name=엘리
GET /students?name=엘리&major=컴퓨터공학
이런식으로 학생 중 엘리이고, 컴퓨터 공학이라는 것을 분류하여 특정 리소스를 조회 가능하고, 앤드 기호를 통해 여러개 연결 가능하다!
(특정 리소스 조회)
Path Variable 방법: GET /students/20
경로 내에 있는 path variable 값을 꺼내 변수에 저장하여 활용할 때 사용한다!
'💻 Backend' 카테고리의 다른 글
무상태성 / JWT / Oauth란? (0) | 2021.11.21 |
---|---|
RESTful 설계 방법 / Validation / Server to Server (0) | 2021.11.14 |
서버 5주차 정리 [키워드 정리] (0) | 2021.10.31 |
서버 4주차 정리 - DB에 관하여 - (2) (0) | 2021.10.24 |
서버 4주차 정리 - DB에 관하여 - (1) (0) | 2021.10.17 |