REST API

이시우·2021년 1월 15일
0

컴퓨터 지식

목록 보기
4/17
post-thumbnail

API 란?


  • Application Programming Interface의 약자이다.
  • API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다.
  • API는 유연성을 제공하고 설계, 관리, 사용 방법을 간소화한다.
  • API를 사용하면 구현 방식을 알지 못해도 제품 또는 서비스가 서로 커뮤니케이션할 수 있으며 애플리케이션 개발을 간소화하여 시간과 비용을 절약할 수 있다.
  • 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것이다.
  • 컴퓨터의 기능을 실행시키는 방식을 의미한다.
  • Java에서 System.out.println("Hello, World.");의 모든 부분이 api이다.

API의 역할

  1. API는 서버와 데이터베이스에 대한 출입구 역할을 한다.
    : 데이터베이스에는 소중한 정보들이 저장되는데요. 모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 되겠지요. API는 이를 방지하기 위해 여러분이 가진 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해줍니다.

  2. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
    : 여기서 애플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플이나 프로그램을 말합니다. API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 합니다.

  3. API는 모든 접속을 표준화한다.
    API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있습니다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있습니다.

API의 유형

  1. private API
    : private API는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행합니다. 따라서 제 3자에게 노출되지 않습니다.

  2. public API
    : public API는 개방형 API로, 모두에게 공개됩니다. 누구나 제한 없이 API를 사용할 수 있는 게 특징입니다.

  3. partner API
    :partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있습니다. 비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용됩니다.



REST API 란?

  • REST는 Representational State Transfer의 약자이다.
  • HTTP URI를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미한다.
  • 특정 기술을 의미하는게 아닌 http를 이용해 기계들이 통신할 때 http의 잠재력을 활용할 수 있도록 유도하기 위한 모범사례이다.
  • REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.

REST API 설계하기

  • URI는 정보의 자원을 표현해야 한다. (리소스명은 동사보다는 명사를 사용)
  • 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)로 표현한다.

잘못된 URI

  1. GET /members/delete/1 (x)
  2. GET /members/show/1 (x)
  3. GET /members/insert/2 (x) - GET 메서드는 리소스 생성에 맞지 않습니다.
  • URI는 자원을 표현하는데 중점을 두어야 하며 delete와 같은 행위에 대한 표현이 들어가서는 안된다.
  • 회원정보를 가져올 때는 GET, 회원 추가 시의 행위를 표현하고자 할 때는 POST METHOD를 사용하여 표현한다.

옳은 URI

  1. DELETE /members/1 (o)
  2. GET /members/1 (o)
  3. POST /members/2 (o)



RESTful API 란?

  • RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다.
  • ‘REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다.
  • RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다.
  • 즉, REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.

RESTful의 목적

  • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
  • RESTful한 API를 구현하는 근본적인 목적이 성능 향상에 있는 것이 아니라 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이 주 동기이니, 성능이 중요한 상황에서는 굳이 RESTful한 API를 구현할 필요는 없다.

RESTful 하지 못한 경우

Ex1) CRUD 기능을 모두 POST로만 처리하는 API
Ex2) route에 resource, id 외의 정보가 들어가는 경우(/students/updateName)

0개의 댓글