티스토리 뷰
728x90
API (Application Programming InterFace) 란?
- 사전적인 의미로는 응용프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있는 인터페이스를 의미한다.
- 사전적인 의미로 이해하기란 어렵기 때문에 비유를 통하여 정리하였다.
- 컴퓨터에 텍스트를 작성하거나 코드를 작성하기 위해서는 반드시 키보드가 필요합니다. 사용자가 키보드를 누르면 컴퓨터에 전달하고 그 후의 동작은 컴퓨터가 알아서 처리하게 됩니다. 여기서 키보드가 API라고 생각하면 된다.
- API는 다시 말해서 한 소프트웨어가 다른 소프트웨어로 지정된 형식으로 요청 및 명령을 받을 수 있는 수단이다. 즉 소프트웨어들이 서로 상호작용하는 것을 도와주는 매개체라고 볼 수 있다.
왜 API를 사용하는가?
- 개발자들이 코드를 작성하는 방법을 표준화함으로써 간소화되고 빠른 프로세스 처리를 가능하게 한다. 또한 협업을 보다 쉽게 만들어 줄 수 있는 장점이 있다.
Rest (Representational State Transfer)가 무엇일까?
- 웹에 존재하는 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI를 부여하여 자원에 대한 주소를 지정하는 방법론이다.
- CRUD Operation
- Create : 생성(POST) = 서버에 데이터를 전송
- Read : 조회(GET) = 서버의 지정된 URL에 있는 리소스에 접근
- Update : 수정(PUT) = 서버의 기존 리소스를 업데이트
- Delete : 삭제(DELETE) = 리소스 제거
REST 구성 요소
- 자원(Resource) : URI
- 모든 자원에는 유일한 ID가 존재하고, 이 자원은 서버에 존재한다.
- 행위(Verb) : HTTP Method
- HTTP 프로토콜의 Method를 사용한다.
- HTTP 프로토콜은 GET,POST,PUT,DELETE와 같은 메서드를 제공한다. * HTTP Method 형태가 제한적이기 때문에 사용할 수 있는 메소드가 4가지 밖에 없다는 단점을 지니고 있다.
- 표현
- REST에서 하나의 자원은 JSON, XML, TEXT 등 여러 형태의 표현이 가능하다.
- 근래에는 JSON을 통해 데이터를 주고 받는다.
REST 특징
- Uniform Interface
- URI에 대한 요청을 일관되고 한정적으로 수행하는 아키텍처 스타일을 의미한다.
- Stateless
- 서버는 각각의 요청을 별개의 것으로 인식하고 이전 요청이 다음 요청에 영향을 끼쳐서는 안된다.
- Cacheble
- Client-Server Architecture
- REST API에서 자원을 가지고 있으면 서버, 자원을 요청하면 클라이언트가 되게 된다. 서버는 API를 제공하고 클라이언트는 사용자 인증과 같은 정보를 직접 관리하는 등 역할을 확실히 구분시킴으로써 서로 간의 의존성을 줄인다.
- Self-Descriptiveness
- API 요청 메세지만 보고도 쉽게 이해할 수 있는 표현 구조로 되어 있다.
- Layered System
- REST API 서버는 다중 계층으로 구성될 수 있으며, 암호화 및 보안 등을 위한 계층을 추가하여 구조를 변경할 수 있다.
REST API 설계 규칙
- URI는 자원(Resource) 기준으로 작성한다.
- URI는 명사를 사용한다.
- 슬래시( / ) 는 계층 관계를 나타내는데 사용한다.
- 언더바( _ )는 URI에 사용하지 않는다.
- URI 경로에는 소문자가 적합하다.
- 가독성이 떨어지는 경우 하이폰( - )을 사용한다.
728x90
'Web' 카테고리의 다른 글
Webpack(웹팩) (0) | 2022.08.11 |
---|---|
웹 브라우저의 동작 (0) | 2022.07.30 |
Web- RESTful API (2) (0) | 2022.05.29 |
Semantic Web (0) | 2022.04.26 |
Web - 자기소개 페이지 (0) | 2022.04.14 |
댓글
01-20 10:36
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
글 보관함
250x250