REST ful이란?
1.RESTful API란?
: API 시스템 구현하기 위한 아키텍쳐 중에 널리 사용되는 형식2. Restful하다
: 리소스(HTTP URI로 정의된)를 어떻게 한다(HTTP Method + Payload)를 구조적으로 깔끔하게 표현 하는 것3. Restful 장점
self-descriptiveness : Restful API 자체만으로 API 목적(or 의도)이 한눈에 알아볼 수 있다.4. Restful API 설계규칙
-
URI(http정보를 제외한 부분?) 정보는
명확
하게 사용하기 -
resource(target부분)는
명사
사용하기(단, 명사의 단&복수 사용은 적절하게)-
ex1)GET/user/1 : 유저 한명의 정보를 불러올 경우라면, 단수 사용 OK
-
ex2)GET/users/1 : 여러 유저 리스트 중에 한명을 불러올 경우라면, 복수 사용해도 OK
-
-
resource에 대한
행위
를HTTP Method(GET, POST, PUT, DELETE)
로 표현하기
ex1) GET delete/user/1 (X) --> DELETE/users/1 (O) -
HTTP메소드의 동사를 URI에 포함되게 작성하지 않기
(why? resource 부분은 명사만 작성해야 하며, 충분히 HTTP 메소드로 사용할 동사를 1개만으로도 표현 가능해야 하며, 가능해야 함)- ex2) GET/user/show/1 (X) --> GET/users/1(O) : GET메소드가 show라는 동사의 기능이 표현 가능
- ex3) POST insert/user/2 (X) --> POST/users/2 (O) : POST메소드가 insert라는 동사의 기능이 표현 가능
-
URI의 '/(슬래시)' 구분자 : 계층관계를 나타냄
-
URI 마지막 문자엔 '/(슬래시)' 사용X
ex) GET users/portfolios/ (X) -
'_(언더바)' 사용X, '-(하이픈)' 사용O
ex1) GET user/1/profile_photo (X)
ex2) GET user/1/profile-photo (O)5. Path parameter / Query parameter
1)Path parameter : '/(슬래시)'로 되어 있는것
- ex1) GET http:127.0.0.1:8000/users
RESPONSE 200 OK
{
"result" : [
{
"name" : "전원우",
"email" : "[email protected]",
"age" : 26,
},
{
"name" : "권호시",
"email" : "[email protected]",
"age" : 26,
}
]
}
***POST / PATCH / PUT 차이
- POST : 업데이트, 딜리트도 POST 로 가능함 (POST로 CURD 모두 가능)
- PATCH : 특정 부분만 업데이트
- PUT : 전부 업데이트
그외, 내가 참고 하고 싶은것 (출처 : 얄팍한 코딩사전 - REST API)
- GET, DElETE : body 없음
- POST, PUT, PATCH : body 있음해당 메소드들은 의도에 맞게 작성해야함
- POST : 새로운 정보 추가(Create) 할때 사용
- GET : 데이터 조회(Read) 할때 사용
2)Query parameter : ?가 붙는것 ('/(슬래시)'가 아닌, resource뒤에 '?(물음표)'를 통해 필터
할때 주로 사용)
- ex2) GET /users?age=26
해석 : users 중에서 age가 26인 정보를 모두 불러오기
RESPONSE
{
"result" : [
{
"id" : 1,
"name" : "전원우",
"email" : "[email protected]",
"age" : 26,
},
{
"id" : 2,
"name" : "권호시",
"email" : "[email protected]",
"age" : 26,
}
]
}
- ex2) GET /users?age=26&name=전원우
해석 : users 중에서 age가 26이면서(and), 이름이 전원우 정보를 불러오기
RESPONSE
{
"result" : [
{
"id" : 1,
"name" : "전원우",
"email" : "[email protected]",
"age" : 26,
},
]
}
- ex3) GET /users?ordering=-id
해석 : users 중에서 id 순서를 내림차순으로 불러오기(즉, id 1,2,3 순 -> id 3,2,1 순으로)
RESPONSE
{ "result" : [
{
"id" : 2,
"name" : "권호시",
"email" : "[email protected]",
"age" : 26,
},
{
"id" : 1,
"name" : "전원우",
"email" : "[email protected]",
"age" : 26,
},
]
}
- ex4) GET /users?offset=0&linit=100
해석 : users 중에서 0번부터 100번까지 불러오기
*** 언제 path parameter 사용하는지, 언제 query parameter 사용하는지?
Query parameter : filtering(필터링 할때 - 색이 노랑색인 경우 등), sorting(정렬 할때 - 최신순, 베스트순, 구매순 등), searching
Author And Source
이 문제에 관하여(REST ful이란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dldbwls492/RESTful이란저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)