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개만으로도 표현 가능해야 하며, 가능해야 함)
URI의 '/(슬래시)' 구분자 : 계층관계를 나타냄
URI 마지막 문자엔 '/(슬래시)' 사용X
ex) GET users/portfolios/ (X)
'_(언더바)' 사용X, '-(하이픈)' 사용O
ex1) GET user/1/profile_photo (X)
ex2) GET user/1/profile-photo (O)
1)Path parameter : '/(슬래시)'로 되어 있는것
RESPONSE 200 OK
{
"result" : [
{
"name" : "전원우",
"email" : "wonwoo@gmail.com",
"age" : 26,
},
{
"name" : "권호시",
"email" : "hosi@gmail.com",
"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뒤에 '?(물음표)'를 통해 필터
할때 주로 사용)
RESPONSE
{
"result" : [
{
"id" : 1,
"name" : "전원우",
"email" : "wonwoo@gmail.com",
"age" : 26,
},
{
"id" : 2,
"name" : "권호시",
"email" : "hosi@gmail.com",
"age" : 26,
}
]
}
RESPONSE
{
"result" : [
{
"id" : 1,
"name" : "전원우",
"email" : "wonwoo@gmail.com",
"age" : 26,
},
]
}
RESPONSE
{ "result" : [
{
"id" : 2,
"name" : "권호시",
"email" : "hosi@gmail.com",
"age" : 26,
},
{
"id" : 1,
"name" : "전원우",
"email" : "wonwoo@gmail.com",
"age" : 26,
},
]
}
*** 언제 path parameter 사용하는지, 언제 query parameter 사용하는지?
Query parameter : filtering(필터링 할때 - 색이 노랑색인 경우 등), sorting(정렬 할때 - 최신순, 베스트순, 구매순 등), searching