API란
API |
API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. |
예를 들어 회사에서 사용하려고 파일 제어(관리)하는 응용프로그램을 만들었다고 생각해보자.
회사 내부에서는 문제가 되지 않지만 외부 사용자가 해당 프로그램을 사용하려고 할 때, 외부 사용자가 해당 소스 및 데이터베이스에 접근하면 안된다.
이런 문제를 해결하기 위해서 API가 사용하는 것이다.
API를 통해 소스 및 데이터베이스는 접근하지 못하게하고 해당 프로그램을 사용할 수 있도록 기능을 제공하는 것이다.
보통 웹에서의 API는 데이터를 요청하고 응답하는게 전부이며, Wiki에서는 웹API를 아래와 같이 정의해 놓았다.
"웹 API는 웹 애플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 명세를 일컫는다."
SOAP
http://www.slideshare.net/seunghochoi4/soap-restful
REST API란
REST API
HTTP POST, http://myweb/users/ { "users": { "name": "terry" } }
REST Architecture 6가지 원칙 (RESTful)
- 균일한 인터페이스 Uniform interface- 상태없음 Stateless- 캐시 Cache- 클라이언트/서버 Client/Server- 계층 시스템 Layered system- (조건부) Code on demand
URI
URI 형태
1. 슬래시(/)는 계층 관계를 나타내는 데 사용된다.
2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
3. 하이픈(-)은 URI 가독성을 높이는데 사용된다.
URI를 쉽게 이해하기 위해, 긴 URI에 하이픈(-)을 사용해서 가독성을 높일 수 있다.
http://api.example.restapi.com/blogs/my/first-post
4. 밑줄(_)은 사용하지 않는다.
텍스트 뷰어 애플리케이션은 클릭할 수 있다는 표시로 URI에 밑줄을 긋는다. 또한, 글꼴에 따라 밑줄은 보기 어렵거나 문자가 완전히 가져지기도 한다.
밑줄로 URI를 표현하는 대신 하이픈(-)을 사용해야 한다.
5. URI는 소문자로 구성하는게 적합하다.
RFC 3986은 URI 스키마와 호스트를 제외하고는 대소문자를 구별하도록 규정한다.
- http://api.example.restapi.com/blogs/my/first-post
- HTTP://API.EXAMPLE.RESTAPI.COM/blogb/my/first-post
- http://api.example.restapi.com/blogs/My/First-Post
URI 스펙(RFC 3986)에 따라 1번과 2번은 같은 것으로 간주되며 3번은 1,2와 다른 URI를 나타낸다. 이러한 혼란을 피하기 위해 기본적으로 URI는 소문자로 구성한다.
6. 파일확장자는 URI에 포함하지 않는다.
웹에서 점(.)은 URI에서 파일 이름과 확장자를 구분하는데 사용된다.하지만 REST API는 미디어 타입에 의존하여 Content-Type 헤더를 통해 전달되고 메세지 바디의 내용을 어떻게 처리할지 결정한다.
URI 권한 설계
1. API에 있어서 서브 도메인은 일관성있게 사용돼야 한다.
API 최상위 도메인과 1차 서브 도메인 이름(예, map.daum.net)으로 서비스를 제공해야 한다. API의 전체 도메인 이름에 api라는 서브 도메인을 붙여야 한다.
http://apis.map.daum.net/
2. 클라이언트 개발자 포탈 서브 도메인은 일관성있게 사용돼야 한다.
메서드
- POST: 등록 (Create)
- GET: 조회 (Select/Read)
- PUT: 수정 (Update)
- DELETE: 삭제 (DELETE)
'REST API' 카테고리의 다른 글
OAuth2.0 (1) | 2016.09.01 |
---|---|
마이크로 서비스 아키텍쳐 (MSA) (0) | 2016.08.31 |
URI vs. URL (URI와 URL의 차이점) (0) | 2016.08.31 |
댓글