Skip to content

Latest commit

 

History

History
113 lines (50 loc) · 3.73 KB

File metadata and controls

113 lines (50 loc) · 3.73 KB

API

  1. 개념 ✔️
  2. REST ✔️
  3. REST API ✔️
  4. RESTful ✔️

출처

API (Application Programming Interface) 개념

API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

프로그램들이 서로 상호작용하는 것을 도와주는 매개체. 정보 교환을 가능하게 한다.

역할
  1. 서버와 데이터베이스에 대한 출입구 역할을 한다.

    모든 사람들이 데이터베이스에 접근할 수 없게 하며, 허용된 사람들에게만 접근성을 부여한다.

  2. 어플리케이션과 기기가 원할하게 통신할 수 있도록 한다.

  3. 모든 접속을 표준화한다.

    기계/운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다.

REST (Representational State Transfer)

자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.

HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD 작동을 적용하는 것을 의미한다. 애플리케이션의 분리 및 통합을 위해 필요하다.

특징
  1. 서버-클라이언트 구조

    자원이 있는 쪽이 서버, 자원을 요청하는 쪽이 클라이언트

    서버는 api를 제공하고 비즈니스 로직 처리 및 저장을 책임진다.

    클라이언트는 사용자 인증이나 context(세션, 로그인 정보) 등을 직접 관리하고 책임진다.

    서로 의존성이 줄어든다.

  2. Stateless 무상태

    Client의 context를 서버에 저장하지 않는다.

    서버는 각 요청을 별개의 것으로 인식하고 처리한다.

  3. Cacheable 캐시 처리 가능

    HTTP 프로토콜을 그대로 사용하므로 캐싱 기능을 적용할 수 있다.

  4. 계층화

    클라이언트는 rest api 서버만 호출한다. rest 서버는 다중 계층으로 구성될 수 있다.

  5. 인터페이스 일관성

    URI로 지정한 리소스에 대한 조직을 통일되고 한정적인 인터페이스로 수행한다.

REST API

REST 기반으로 서비스 API를 구현한 것

규칙
  1. URI는 정보 자원을 표현해야 한다.

    /members/1

  2. 자원에 대한 행위는 http 메소드(GET, PUT, POST, DELETE 등)으로 표현한다.

    GET /members/1

  3. URI 마지막 문자로 슬래시(/)를 포함하지 않는다

  4. 파일 확장자는 포함하지 않는다

  5. _(밑줄)은 사용하지 않는다

RESTful

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


Q. API는 무엇인가요?

응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 말합니다. 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로, 정보 교환을 가능하게 합니다.

Q. RESTful이란 무엇인가요?

REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어 입니다. REST API를 제공하는 웹 서비스를 RESTful 하다고 할 수 있습니다. 여기서 REST라는 것은 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 것을 의미합니다. REST API를 사용하면 서버와 클라이언트의 역활을 명확하게 분리할 수 있고, 메시지가 의도하는 바를 쉽게 파악할 수 있습니다. 또한, HTTP 프로토콜을 활용하기 때문에 캐싱 기능 등을 적용 할 수 있습니다.