Representational State Transfer 의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다.
< REST에서 CRUD Operation 동작 >
- CREATE : POST => 데이터 생성
- Read : GET => 데이터 조회
- Update : PUT => 데이터 수정
- Delete : DELETE => 데이터 삭제
Server-Client(서버-클라이언트 구조)
Stateless(무상태)
Cacheable(캐시 처리 가능)
Layered System(계층화)
Uniform Interface(인터페이스 일관성)
REST를 기반으로 만들어진 API를 의미한다.
URL은 동사보다는 명사를 사용.
http://restapistudy.com/studying = > Bad
http://restapistudy.com/study => Good
대문자 보다는 소문자를 사용.
http://users/{userId}/PROFILE = > Bad
http://users/{userId}/profile = > Good
마지막에 슬래시(/)를 포함하지 않는다.
http://restapistudy.com/study/ = > Bad
http://restapistudy.com/study=> Good
언더바(_) 대신 하이픈(-)을 사용.
http://restapistudy.com/study_blog = > Bad
http://restapistudy.com/study-blog => Good
파일확장자는 URI에 포함하지 않는다.
http://restapistudy.com/study/photo.jpg => Bad
http://restapistudy.com/study/photo => good
행위를 포함하지 않는다.
http://restapistudy.com/study/delete-post/2 = > Bad
http://restapistudy.com/study/post/2 => Good
케밥 케이스(Kebab-case) 사용.
Path Variable에는 카멜 케이스(camelCase) 사용.
http://restapistudy.com/study/users/{UserId} => Bad
http://restapistudy.com/study/users/{userId} => Good
Collection에서는 단수가 아닌 복수를 사용.
http://restapistudy.com/study/user => Bad
http://restapistudy.com/study/Users => Good
참고
블로그