본문 바로가기

네트워크

rest api란?

반응형

정의 

REST는 HTTP기반으로 필요한 자원(Resource)에 접근하는 방식을 정해 놓은 것이다. 
즉, 서버에 존재하는 이미지, 동영상, DB와 같은 자원에 고유한 URI를 부여해 활용 하는 것으로, 자원을 정의하고 HTTP Method(POST, GET, PUT, DELETE)를 통해 자원에 대한 CRUD를 적용하는 방법론을 말한다. 

CRUD (기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)등을 묶어서 나타내는 말이다.) 
Create : 생성(POST) 
Read : 조회(GET) 
Update : 수정(PUT) 
Delete : 삭제(DELETE) 
HEAD: header 정보 조회(HEAD) 

RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다. 
'REST API'를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다. 

rest api의 제한 조건 (위키피디아) 

클라이언트/서버 구조: 일관적인 인터페이스로 분리되어야 한다. 
무상태(Stateless): 각 요청 간 클라이언트의 콘텍스트가 서버에 저장되어서는 안 된다 
캐시 처리 가능(Cacheable): WWW에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다. 
잘 관리되는 캐싱은 클라이언트-서버 간 상호작용을 부분적으로 또는 완전하게 제거하여 scalability와 성능을 향상시킨다. 
계층화(Layered System): 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간 서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는 데 유용하다. 
Code on demand (optional) - 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다. 
인터페이스 일관성: 아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다. 


api의 정의 
API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. 

API(Application Programming Interface)란 
데이터와 기능의 집합을 제공하여 프로그램간에 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 

웹 API는 웹 애플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 명세를 일컫는다. 예를 들어 블로그 API를 이용하면 블로그에 접속하지 않고도 다른 방법으로 글을 올릴 수 있다. 그 외에 우체국의 우편번호 API, 구글과 네이버의 지도 API등 유용한 API들이 많으므로, 요즘은 홈페이지 구축이나 추가개편 시 따로 추가로 개발하지 않고 이런 오픈 API를 가져와 사용하는 추세다. 
즉 웹 api에서는 서버가 제공하는 기능을 클라이언트에서 제어할 수 있게 만드는 것을 말한다. 

 

출처 및 참고 위키피디아

반응형