위코드에서 프로젝트를 할 때도 RESTful API에 대해서 고민을 하면서 진행하긴 했지만, 브랜디에서 인턴을 하면서 좀 더 타이트한 개념 적용을 요구 받고 있는데요, 기본 개념을 먼저 짚어보고 실제로 RESTful API를 적용한 내용도 살펴보도록 하겠습니다. 기본 개념은 참고자료에 나와있는 문구들을 많이 참고하였고, 예시는 실제 작성했던 내용으로 적었습니다.
REST는 Representational State Transfer(대표적인 상태 전달)
의 월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식입니다. 구체적으로는 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고, 그 리소스에 대한 행위를 HTTP Method 로 정의하는 방식을 의미합니다. REST는 아래와 같은 구성요소를 지니고 있습니다.
URI는 해당 사이트의 특정 자원의 위치를 나타내주는 유일한 주소를 의미하며, https://localhost:5000/news/10
와 같이 모든 것을 Resource(명사)로 표현하고, 세부 리소스에는 id를 붙입니다. 클라이언트는 URI를 이용해서 자원을 지정하고, 해당 자원의 상태(정보)에 대한 조작을 서버에 요청합니다.
자원에 대한 행위를 나타내며, HTTP 프로토콜의 Method를 사용합니다.
JSON 등을 통해 서버와 클라이언트가 주고받는 표현(응답)을 의미합니다.
RESTful API는 위와 같은 REST 원리를 따르는 시스템을 의미합니다. REST를 따르면 여러 장점들이 있는데 그중 가장 명확한 점은 self-descriptiveness
인데, 이 자체만으로도 API 목적이 쉽게 이해가 되기 때문입니다. 구조를 이루고 있는 Resource와 Method만 봐도 어떤 행위를 하는지 직관적으로 이해할 수 있습니다.
셀러 리스트 출력
- [GET] /sellers
셀러 계정 생성
- [POST] /sellers
1번 셀러 정보 수정
- [PUT] /sellers/1
1번 셀러 삭제
- [DELETE] /sellers/1
[PUT] /sellers/1/password
1차 카테고리 표출
- [GET] /products/categories
2차 카테고리 표출
- [GET] /products/categories/1
- [GET] /products/categories/2
덕분에 REST API에 대해 이해할 수 있었습니다 ㅜㅜ블로그에 공부 내용 기록하면서 출처 밝히고 내용 적으려 하는데 혹시나 어려우시다면 말씀주세요!