Rest API
목차
- REST API가 뭔가요?
- REST API의 구성은 어떤 것이 있나요?
- REST API를 설계하는데 중요한 것이 있을까요?
- HTTP 요청 메서드에 대해서 아는대로 얘기해보세요
1. REST API가 뭔가요?
: REST API란 REST를 기반으로 만들어진 API를 의미
Rest : REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미함
REST는 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
- HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
- 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미함
REST의 특징
- Server-Client(서버-클라이언트 구조)
- Stateless(무상태)
- Cacheable(캐시 처리 가능)
- Layered System(계층화)
- Uniform Interface(인터페이스의 일관성)
REST의 장점
- HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없음
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악 가능
- 서버와 클라이언트의 역할을 명확하게 분리함
REST의 단점
- 표준이 자체가 존재하지 않아 정의가 필요
- HTTP Method 형태가 제한적
- 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 정보의 값을 처리해야 하므로 전문성이 요구됨
2. REST API의 구성은 어떤 것이 있나요?
구성 요소 | 내용 | 표현 방법 |
---|---|---|
자원(resource) | 자원 | URI(엔드 포인트) |
행위(verb) | 자원에 대한 행위 | HTTP 요청 메서드 |
표현(representations) | 자원에 대한 행위의 구체적 내용 | 페이로드 |
3. REST API를 설계하는데 중요한 것이 있을까요?
- URI는 리소스를 표현하는데 집중
- 리소스를 식별할 수 있는 이름은 동사보다는 명사를 사용
- 리소스 이름에 get 같은 행위에 대한 표현이 들어가서는 안됨
- 행위에 대한 정의는 HTTP 요청 메서드를 통해 진행
4. HTTP 요청 메서드에 대해서 아는대로 얘기해보세요
HTTP | 요청 메서드 종류 | 목적 | 페이로드 |
---|---|---|---|
GET | index/retrieve | 모든/특정 리소스 취득 | x |
POST | create | 리소스 생성 | o |
PUT | replace | 리소스의 전체 교체 | o |
PATCH | modify | 리소스 일부 수정 | o |
DELETE | delete | 모든/특정 리소스 삭제 | x |
출처