REST API
REST API
REST API란?
REST ?
주고받는 자원에 이름을 규정하고 URI에 명시해 HTTP 메서드를 통해 해당 자원의 상태를 주고받는 것
REST API?
API : Application Programming Interface, 서버 또는 프로그램 사이를 연결
REST API : REST 아키텍처를 따르는 API
REST 특징
유니폼 인터페이스
HTTP 표준 전송 규약을 따르기 때문에 어떤 프로그래밍 언어로 만들어졌느냐와 상관없이 호환 가능
무상태성
무상태성이란 서버에 상태 정보를 따로 보관, 관리하지 않음을 의미한다.
서버는 클라이언트가 보낸 요청에 대해 세션이나 쿠키를 보관하지 않는다.
캐시 가능성
HTTP 캐싱 기능 적용 가능
클라이언트에서 캐시에 저장해두고 같은 요청에 대해서는 해당 데이터를 사용한다.
서버의 트랜잭션 부하가 줄어 효율적이고 사용자 입장에서 성능이 개선된다.
URI 설계 규칙
- URI 마지막에 '/'를 포함하지 않는다.
- 언더바(_)는 사용하지않는다. 하이픈(-)을 사용한다.
- URI에는 동사가 아닌 명사를 사용한다.
- URI는 소문자로 작성한다.
- URI에 파일의 확장자는 포함하지 않는다.
HTTP 메서드
CRUD
C : Create 쓰기
R : Read 읽기
U : Update 수정
D: Delete 삭제
POST
데이터 쓰기에 사용하는 메서드. 데이터 전송을 URI에 담는 것이 아닌 Body에 담아 보낸다. 따라서 URI에 정보가 노출되지 않는다. 그래서 로그인의 경우 민감한 정보를 URI에 담을 순 없기에 데이터 쓰기가 아님에도 불구하고 POST 메서드를 사용한다.
GET
데이터 읽기에 사용하는 메서드. 데이터 전송을 URI에 담아 보낸다. '/post?page=1' 처럼 쿼리 형식으로 담아 보낼 수 있고, '/post/1' 처럼 URI Path에 담아 보낼 수도 있다.
PUT, PATCH
데이터 수정에 사용하는 메서드. PUT과 PATCH 모두 데이터 수정을 하는 점은 같다. 하지만 큰 차이점이 있는데 PUT은 수정정보가 들어왔을때 그 값 그대로 저장한다. 즉, 값이 없는 필드가 있으면 그마저도 그대로 저장한다. 하지만 PATCH는 값이 없는 필드는 기존 값을 유지한다.
메서드를 설정한다고 알아서 동작하는 것은 아니다.
메서드에 맞게 직접 구현해야한다.
DELETE
데이터 삭제에 사용하는 메서드.