웹프로그래밍/이론
[WEB] REST API 란
ssung.k
2021. 6. 14. 18:40
REST란
REST
는 Representational State Transfer의 약자로 자원을 정의하고 자원에 대한 주소를 지정하는 방법 중 하나입니다.
URI를 통해 자원을 명시하고 HTTP method를 통해서 동작을 정의합니다.
자세한 설계 방법은 아래에서 살펴봅시다.
REST의 특징
- 동일한 인터페이스
- HTTP 표준만 따른다면, 언어와 플랫폼에 종속되지 않습니다. 안드로이드, IOS, 웹에 종속되지 않습니다.
- Stateless
- 서버에서 상태정보를 따로 저장하고 관리하지 않습니다. 이로 인해 서버의 구현이 단순해집니다.
- Cacheable
- HTTP의 인프라를 그대로 사용할 수 있기 때문에 HTTP가 가진 캐시 기능을 사용할 수 있습니다.
- Self-descriptiveness (자체 표현 구조)
- REST API만 보고도 의도하는 바를 명확하게 이해할 수 있습니다.
- Client-Server 구조
- 클라이언트와 서버의 역할을 확실히 구분하여 클라이언트와 서버간에 개발해야 할 내용이 명확해지고 의존성이 줄어듭니다.
REST의 단점
REST의 장점은 특징을 통해 알아봤습니다.
REST의 단점은 아래와 같습니다.
- 제한적인 HTTP method
- POST, GET, DELETE, PUT 4개의 HTTP로 제한됩니다.
- 표준의 부재
- REST API는 표준이 존재하지 않습니다. 그렇기 때문에 클라이언트와 서버 개발자는 API 문서를 통해 소통을 하고 표준을 잡아가게 됩니다.
- 호환성
- 인터넷 익스플로어같은 경우에는 호환이 되지 않아 지원이 안 될 가능성이 존재합니다.
REST API 설계 기본 규칙
표준은 존재하지 않지만 설계를 위한 기본 규칙은 존재합니다.
해당 규칙을 잘 지킨 API를 RESTful하다고 합니다.
- 슬래시 구분자를 통해 계층 관계를 나타냅니다.
- 마지막에는 슬래시 구분자를 포함하지 않습니다.
- 언더바 보다는 하이픈을 사용합니다.
- URI는 소문자로 표기한다.
- URI에 파일 확장자를 표기하지 않는다.