REST
최근 수정 시각: (5년 전)
1. 개요 [편집]
REST(Representational State Transfer)는 로이 필딩(Roy Fielding)이 자신의 2000년 박사 학위 논문에 정의한 웹 기반 아키텍쳐다. API 쪽에서 굉장히 많이 쓰인다.
Google 을 포함하여, Facebook, 트위터, Naver, 카카오톡 등 IT 회사라면 각 회사의 서비스를 활용할 수 있는 REST API를 지원한다. REST API를 사용하기 위해서는 서버의 인증을 받아야 하며 OAuth 2.0(또는 OpenID)을 대표적으로 사용한다. 아래는 구글 API를 사용하는 OAutho 2.0 방법은 다양하게 존재하며 대표적으로 아래와 같이 구분할 수 있다#.
1) Web server applications Gmail API 구현 사례
2) Client-side (JavaScript) applications
3) Applications on limited-input devices
4) Service accounts Calendar API 구현 사례
Google 을 포함하여, Facebook, 트위터, Naver, 카카오톡 등 IT 회사라면 각 회사의 서비스를 활용할 수 있는 REST API를 지원한다. REST API를 사용하기 위해서는 서버의 인증을 받아야 하며 OAuth 2.0(또는 OpenID)을 대표적으로 사용한다. 아래는 구글 API를 사용하는 OAutho 2.0 방법은 다양하게 존재하며 대표적으로 아래와 같이 구분할 수 있다#.
1) Web server applications Gmail API 구현 사례
2) Client-side (JavaScript) applications
3) Applications on limited-input devices
4) Service accounts Calendar API 구현 사례
2. 조건 [편집]
- 클라이언트와 서버의 분리
- 무상태(Stateless)
- 캐시 처리가 가능해야 함
- 시스템이 계층화(Layered) 되어있어야 함
- 일관성 있는 인터페이스
3. 구성요소 [편집]
3.1. 자원(Resource) [편집]
나무위키에서 몇가지를 예로 들자면,
URI | 의미 |
https://namu.wiki/edit/A | A 문서 편집 |
https://namu.wiki/history/A | A 문서의 변경기록 보기 |
https://namu.wiki/move/A | A 문서의 표제어 변경 |
https://namu.wiki/delete/A | A 문서 삭제 |
https://namu.wiki/xref/A | A 문서의 역링크 |
여기서 /는 계층 관계를 나타낸다.
3.2. 메소드(Method) [편집]
HTTP 메소드를 사용한다.
POST | 자원 생성(Create) |
GET | 자원 조회(Read) |
PUT | 자원 수정(Update) |
DELETE | 자원 삭제(Delete) |
3.3. 메시지(Message) [편집]
라이선스를 별도로 명시하지 않은 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.
문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.