REST API 란?
Representational State Transfe라는 용어의 약자이다.
자원을 URI로 표시하고 해당 자원의 상태를 주고 받는 것을 의미한다.
REST의 구성 요소
- 자원(Resource): URI
- 행위(Verb): HTTP METHOD
CRUD = > Create 데이터 생성 (POST)
Read 데이터 조회 (GET)
Update 데이터 수정 (PUT)
Delete 데이터 삭제 (DELETE)
- 표현(Representations)
Rest는 URI를 통해 자원을 표시하고, HTTP method를 이용하여 해당 자원의 행위를 정해주며 그 결과를 리턴한다.
REST API 설계 규칙
1. 소문자만을 사용한다.
-> 카멜방식이 아닌 소문자를 사용하여 작성한다.
http://www.workathome.com/users/postComments
http://www.workathome.com/users/post-comments
2. 언더바 ( _ ) 대신 하이픈 ( - )를 사용한다.
-> 정확한 의미나 표현을 위해 단어의 결합이 불가피한 경우에 사용한다.
-> 가독성을 위해 긴 Path를 표현하는 단어는 하이픈으로 구분하는 것이 좋다.
http://www.workathome.com/users/post_comments
http://www.workathome.com/users/post-comments
3. 마지막에 슬래시 ( / )를 포함하지 않는다.
http://www.workathome.com/commits/
http://www.workathome.com/commits
4. 행위는 포함하지 않는다.(GET, POST, PUT, DELETE 등)
http://www.workathome.com/users/1/delete-post/1
http://www.workathome.com/users/1/posts/1
5. 파일 확장자는 URI에 포함하지 않는다.
-> Accept header를 사용하도록 한다.
http://www.workathome.com/users/photo.jpg
GET http://www.workathome.com/users/photo
6. 가급적 동사가 아닌 자원의 명사를 사용한다.
http://www.workathome.com/posts/duplicating
http://www.workathome.com/posts/duplicate
7. URI에 작성되는 영어를 복수형으로 작성한다.
http://www.workathome.com/animals/3248234/course
http://www.workathome.com/animals/3248234/courses
'백엔드 (Back-End) > 스프링 (Spring)' 카테고리의 다른 글
<Spring> 백엔드 API 구조 (1) | 2022.10.18 |
---|---|
<Spring> 로깅 프레임워크 (Log4j, Log4j2, Slf4j, Logback) (0) | 2022.10.13 |
<Spring> @Nullable 어노테이션 (0) | 2022.09.05 |