-
[CS 지식] REST APIComputer Science/면접 대비 2023. 6. 2. 21:25
🌱REST
Representational State Transfer
REST 는 하나의 아키텍쳐에 가깝다.
그래서 몇 가지 주요 원칙들이 존재하며, 이를 잘 지킨 API를 "REST ful" 하다고 표현한다.
RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다.
즉, REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.HTTP 프로토콜을 기반으로 요청과 응답에 따라 리소스를 주고받기 위해서 알아보기 쉽게 작성해야할 필요가 있다.
🌱구성요소
REST API 는 자원, 행위, 표현으로 구성된다. API 만으로도 HTTP 의 요청을 직관적으로 이해할 수 있다.
🌿자원 : URL
자원은 서버에 저장되어 있으며, 해당 자원에 접근할 수 있는 URI 가 존재한다.
클라이언트는 URI 를 통해 해당 자원을 조작하고, CRUD 작업을 수행할 수 있다.
🌿행위 : HTTP Method
자원에 대한 행위이다. POST, GET, PUT, DELETE 와 같은 HTTP 요청 메서드를 의미한다.
🌿표현
행위의 구체적인 내용이다. JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.
🌱REST API를 작성하는 규칙
로이 필딩이 논문에서 제시한 REST 방법론을 보다 더 실용적으로 적용하기 위해 레오나르드 리처드슨은 REST API를 잘 적용하기 위한 4단계 모델을 만들었다.
2단계까지만 적용해도 좋은 API 디자인이라고 볼 수 있고, 이런 경우를 HTTP API라고도 부른다.
🌿1. URI는 정보의 자원을 표현해야 한다.
- resource는 동사보다는 명사를, 대문자보다는 소문자를 사용한다.
- resource의 도큐먼트 이름으로는 단수 명사를 사용해야 한다.
- resource의 컬렉션 이름으로는 복수 명사를 사용해야 한다.
- resource의 스토어 이름으로는 복수 명사를 사용해야 한다.
Ex) GET /Member/1 -> GET /members/1🌿2. 자원에 대한 행위는 HTTP Method(GET, PUT, POST, DELETE 등)로 표현한다.
- URI에 HTTP Method가 들어가면 안된다.
Ex) GET /members/delete/1 -> DELETE /members/1
- URI에 행위에 대한 동사 표현이 들어가면 안된다.(즉, CRUD 기능을 나타내는 것은 URI에 사용하지 않는다.)
Ex) GET /members/show/1 -> GET /members/1 Ex) GET /members/insert/2 -> POST /members/2
- 경로 부분 중 변하는 부분은 유일한 값으로 대체한다.(즉, :id는 하나의 특정 resource를 나타내는 고유값이다.)
Ex) student를 생성하는 route: POST /students Ex) id=12인 student를 삭제하는 route: DELETE /students/12🌱응답 상태 코드
1xx : 전송 프로토콜 수준의 정보 교환
2xx : 클라어인트 요청이 성공적으로 수행됨
3xx : 클라이언트는 요청을 완료하기 위해 추가적인 행동을 취해야 함
4xx : 클라이언트의 잘못된 요청
5xx : 서버쪽 오류로 인한 상태코드🌱참고자료
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
'Computer Science > 면접 대비' 카테고리의 다른 글
[Section3] 기술면접 준비 (0) 2023.07.06 [Section2] 기술면접 준비 (0) 2023.06.08 [CS지식] OSI 7계층, 주요 프로토콜 (0) 2023.05.23 [CS 지식] HTTP vs HTTPS / 대칭키 암호화 vs 공개키 암호화 (0) 2023.05.17