REST API와 HTTP Method

danbibibi·2022년 7월 19일
0

REST API

Representational state transfer API

  • 웹에서 데이터를 전송 및 처리하는 방법을 정의한 인터페이스
  • 자원(Resource) - URI / 행위(Verb) - HTTP METHOD / 표현(Representations) 으로 구성

URI는 식별하고, URL은 위치를 가르킨다.

  • URI: 통합 자원 식별자(Uniform Resource Identifier)
  • URL: 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약 (웹 주소)

특징

  1. Uniform Interface : URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일.

  2. Stateless (무상태성) : 작업을 위한 상태정보를 별도로 저장, 관리하지 않음. API 서버는 단순히 들어오는 요청만 처리.

  3. Cacheable (캐시 가능) : 기존 웹표준을 그대로 사용하기 때문에 HTTP가 가진 캐싱 기능 적용 가능

  4. Self-descriptiveness (자체 표현 구조) : REST API 메시지만 보고도 쉽게 이해 할 수 있는 자체 표현 구조로 되어 있음.

  5. Client - Server 구조 : REST 서버는 API 제공, 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리하는 구조.

  6. 계층형 구조 : 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있음.

디자인 가이드

  1. URI는 정보의 자원을 표현해야 한다. (리소스명은 동사보다 명사를 사용)
  2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.

HTTP Method

  • GET: 리소스(데이터) 조회
  • POST: 리소스(데이터) 추가
  • PUT: 리소스(데이터) 수정
  • DELETE: 리소스(데이터) 삭제

HTTP 응답 상태 코드

200 : 클라이언트 요청이 정상 수행된 경우 (응답에 대한 메시지가 포함)
201 : 리소스 생성 요청이 정상 처리된 경우
202 : 리소스 생성 요청이 비동기적으로 처리된 경우
204 : 클라이언트 요청 정상 수행 (응답에 대한 메시지 미포함, 보통 삭제요청에 사용)
400 : 클라이언트 요청이 부적절한 경우 (부적절한 이유를 응답 Body에 넣어야 함)
401 : 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청한 경우
403 : 클라이언트가 인증상태와 무관하게 응답하고 싶지 않은 리소스를 요청한 경우 (400 사용 권장)
404 : 클라이언트가 요청한 리소스가 존재하지 않는 경우
405 : 클라이언트가 불가능한 메소드를 사용한 경우

profile
블로그 이전) https://danbibibi.tistory.com

0개의 댓글