REST API의 핵심은 자원과 행위를 분리한다는 것이다.
자원을 URI로 표현할 때는 행위에 대해서 섞어서 말해서는 안 된다.
명사 형태로, '어디'를 목표로 하고 있는지만을 밝혀야 한다.
그 목표에 어떤 행위를 할지 밝히는 것은 http 메소드로 표현해야 한다.
CRUD에 따라서 데이터 등록 목적으로 요청을 보낸다고 하면 POST,
조회 목적이라면 GET, 수정하려는 경우 PUT, 삭제하려는 경우 DELETE 메소드를 사용한다.
* 참고 *
crud를 각각의 http 메소드와 곧장 연관 짓는 것에 관해서 바로잡아야 한다는 의견도 있다.
정확히는 create = post, update = put이라고 기계적으로 연관 지으면 안 된다는 것.
update를 할 때 post를 쓸 수 있다고 전문가들이 지적한다(아래 참고문헌 두번째 참조).
이런 규칙에 맞춰 REST API 성숙도 모델이 제시된다.
REST API 성숙도 모델은 0~3단계로 이뤄져 있다.
0단계에서는 단지 URI에 http를 사용하면 된다.
다만 소문자로 작성하는 것이 권장되고, 밑줄(_)은 사용하지 않으며, 필요할 때는 하이픈(-)을 사용한다.
1단계에서는 개별 리소스에 집중해 명사 형태의 단어로 엔드포인트를 표현한다.
응답도 제대로 해야 한다.
2단계에서는 CRUD에 맞는 적절한 http 메서드를 사용한다
위에서 언급한 것과 같이 메서드들을 목적에 따라 적절히 사용해야 한다.
마지막 3단계는 하이퍼미디어 컨트롤을 포함하는 단계로서,
응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있게 한다.
또한, 잘 설계된 REST API는 리소스에 대한 응답 또한 잘 내어줘야 한다.
명확한 상태 코드를 담아서 응답해야 REST API의 조건에 맞는다고 할 수 있다.
REST API 성숙도 모델을 3단계까지 만족하면 RESTful API라고 할 수 있다.
(내가 보려고 정리하는) 참고 자료
REST API 제대로 사용하기
https://meetup.nhncloud.com/posts/92
Richardson Maturity Model
https://martinfowler.com/articles/richardsonMaturityModel.html
'코드스테이츠 프론트엔드 부트캠프' 카테고리의 다른 글
UI/UX (1) | 2023.04.13 |
---|---|
[회고] 코드스테이츠 프론트엔드 부트캠프 section2 회고 (0) | 2023.04.10 |
[회고] 코드스테이츠 프론트엔드 부트캠프 Section 1 회고 (1) | 2023.03.13 |
[CLI] CLI(Command-Line-Interface) 다루기 (0) | 2023.02.24 |
[CSS] flex의 활용(서로 다른 column에 있는 item 어긋남 해결하기) (0) | 2023.02.16 |