REST API는 무엇인가
2023. 10. 28. 22:56ㆍ기타
API (Application Programming Interface)
API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스로
서버와 데이터베이스의 통신 역할을 한다.
REST API (Representational State Transfer)
월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.
REST API는 HTTP Method를 통해 통신하며 데이터 생성, 읽기, 업데이트, 삭제(CRUD)의 기능을 수행한다.
RESTful API : REST의 설계 규칙을 잘 지켜서 만들어진 API
REST의 특징
- Server-Client(서버-클라이언트 구조)
- 자원을 가지고 제공하는 쪽이 Server, 자원을 요청하는 쪽이 Client로 역할을 확실히 구분하여 의존성을 줄인다.
- 서버는 API를 제공하고 비즈니스 로직 처리 및 저장을 책임진다.
- 클라이언트는 사용자 인증이나 context(세션, 로그인 정보) 등을 직접 관리하고 책임진다.
- Stateless (무상태)
- HTTP 프로토콜은 기본적으로 무상태로 클라이언트의 상태를 서버에 저장하지 않는다.
- 서버는 클라이언트의 요청을 각각 별개로 인식하고 처리하여 서버의 처리 방식에 일관성을 부여하여 부담이 줄어든다.
- Cacheable (캐시 처리 기능)
- 웹 표준 HTTP 프로토콜을 그대로 사용하며 웹에서 사용하는 기존의 인프라를 그대로 활용할 수 있어 캐싱 기능을 적용 할 수 있다.
- 캐시를 이용하여 응답시간, 성능, 서버의 자원 이용률을 향상 시켜 대량의 요청에 대한 효율적으로 처리할 수 있다.
- Layered System (계층 구조)
- Client는 REST API Server만 호출한다.
- Server는 다중계층으로 구성 될 수 있고, 순수 비즈니스 로직을 수행하고 보안, 로드밸런싱, 암호화, 사용자 인증 등을 추가하여 구조상의 유연성을 줄 수 있다.
- Uniform Interface (인터페이스 일관성)
- 서버로부터 스크립트를 받아서 클라이언트에서 실행한다.
- 반드시 충족할 필요는 없다.
- Self-Descriptiveness (자체 표현)
- 서버가 변해서 메세지가 변해도 클라이언트는 그 메세지를 보고 해석이 가능해야한다.
API의 구성
- 자원(Resource): URI
- 소문자를 사용한다.
- 언더바대신 하이픈을 사용한다.
- URI의 마지막에는 슬래시를 포함하지 않는다.
- http method를 포함하지 않는다.
- 동사보다는 명사, 단수보다는 복수를 사용한다. - 행위(Verb) : HTTP METHOD
주로 GET, POST, PUT, PATCH, DELETE를 사용하여 CRUD를 구현
CURD : Create(생성), Read(읽기), Update(갱신), Delete(삭제)
- GET : 데이터 조회
- POST : 데이터 등록
- PUT : 데이터가 존재하는 경우 데이터를 대체 (데이터를 전체적으로 변경)
- PATCH : 데이터를 부분적으로 변경
- DELETE : 데이터 삭제
- 표현(Representations)
- Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
- JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.
'기타' 카테고리의 다른 글
코딩컨벤션 작성하기 (1) | 2023.12.22 |
---|---|
DDD 설계 VS SQL 중심 설계 (1) | 2023.11.11 |
HTTP 그리고 HTTP Methods (1) | 2023.11.07 |
Homebrew (0) | 2023.09.06 |
Mac에 웹 개발환경 세팅하기 (0) | 2023.09.06 |