정말 간단히 말하면 “URI를 통해 정보의 자원을(only 자원만을) 표현하고, 자원의 행위는 HTTP Method로 명시한다.” 정도로 이해해 주시면 될 것 같아요.REpresentational State Transfer의 약자로서, 어떤 자원에 대해 CRUD를 진행할 수 있게 HTTP Method(GET, POST, PUT, DELETE)를 사용하여 요청을 보내는 것. 이 때, 요청을 위한 자원은 특정한 형태로 표현된다.
자원(Resource) : URI
행위(Verb) : HTTP Method
표현(Representations)
GET /users/3/profile
위 요청을 아-무 지식이 없는 상태에서 예상해볼까요?
누구라도 → user 중에서 3번 아이디를 갖고있는 사람의 프로필을 줘! 라는 것을 알 수 있을거에요.
이게 바로 REST API의 장점이라고 할 수 있겠죠.
(2) 예시
바로 예시를 보시죠
// bad
GET /members/delete/1
// good
DELETE /members/1
// bad
GET /members/show/1
// good
GET /members/1
// bad
GET /members/insert/2
// good
POST /members/2
규칙도 조금 살펴봅시다!
http://example.com/posts (O)
http://example.com/posts/ (X)
http://example.com/post (X)
http://example.com/get-posts (X)
--> URI는 명사를 사용하고 소문자로 작성되어야 한다.
--> 명사는 복수형을 사용한다.
--> URI의 마지막에는 /를 포함하지 않는다.
http://example.com/post-list (O)
http://example.com/post_list (X)
--> URI에는 언더바가 아닌 하이픈을 사용한다.
http://example.com/post/assets/example (O)
http://example.com/post/assets/example.png (X)
--> URI에는 파일의 확장자를 표시하지 않는다.
위의 REST API의 까다로운 조건을 만족시킨 통신 설계 상태를 말합니다.
그 누가 보더라도 이해하기 쉽고, 사용하기 쉬운 REST API라면 “RestFul하구나!” 라고 할 수 있습니다.
(1) 개요
REST한 개발을 하다 보면, GET method를 이용하여 데이터를 가져올 때 등의 경우에서 Path Variable과 Query Parameter에 대한 이야기는 항상 같이 나옵니다. 이번 기회에 한번 정리해볼게요!
(2) Path Variable
/users/10
[특징]
(3) Query Parameter
/users?user_id=10
[특징]
(4) 예시를 통해 비교해보기
/users # Fetch a list of users -> Path Variable
/users?occupation=programer # Fetch a list of programer user -> Query Parameter
/users/123 # Fetch a user who has id 123 -> Path Variable
출처 : 스파르타 코딩클럽 강의자료 2023