Rest API가 도대체 뭘까?

swb·2022년 12월 11일
0

api

목록 보기
1/1

들어가기에 앞서
API는 무엇일까?

API(Application Programming Interface)란?

프로그램을 사용할 수 있도록 기능을 제어할 수 있는 인터페이스를 말한다. 구현사항을 숨겨두고 외부에서 사용하는 사람을 위해 노출해둔 것이다.

식당으로 예를 들자면 API는 점원이다. 손님이 메뉴를 주문하면 점원은 주방에 주문받은 요리를 요청한다.

즉, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체이다.

그럼 오픈 API는 무엇일까?

회사내부에서 사용하는 API를 외부의 다른 개발자들이 사용할 수 있도록 오픈해놓은 API이다.

제공하는 쪽은 노출시켜 더 많은 사용자들을 끌어들일 수 있고
사용하는 쪽은 손쉽게 원하는 기능들을 사용할 수 있다.

REST API

Rest(Representational State Transfer) API란?

정보들이 주고 받아지는 데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식이다.

HTTP URI를 통해 자원을 명시하고
HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미한다.

REST 구성 요소

  1. 자원 : HTTP URI
  2. 자원에 대한 행위 : HTTP Method
  3. 자원에 대한 행위의 내용 : HTTP Message Pay Load

REST API 설계 예시

  1. 동사보다는 명사를, 대문자보다는 소문자를 사용한다.
  2. 마지막에 슬래시를 포함하지 않는다.
  3. 언더바 대신 하이폰을 사용한다.
  4. 파일확장자는 포함하지 않는다.
  5. 행위를 포함하지 않는다.

REST API 작동 방식

HTTP 요청을 통해 데이터 생성, 읽기, 업데이트 및 삭제 긴으을 완료한다.
Create(POST) - 리소스 생성
Read(GET) - 리소스 가져오기
Update(PUT) - 리소스 업데이트
Delete(DELETE) - 리소스 삭제

REST의 장점

  1. HTTP 프로토콜 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없다.
  2. HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용이 가능하다.
  3. 서버와 클라이언트의 역할을 명확하게 분리한다.

REST의 단점

  1. 표준이 존재하지 않는다.
  2. 사용할 수 있는 Method가 4가지 밖에 없다.
  3. 보안성에 취약하다.
    • 평범한 HTTP 메소드를 사용하여 액세스할 수 있다는 점 때문이다.
    • 메세지 가로채기 공격, 크로스 사이트 스크립팅, SQL 삽입 공격, DDoS 등에 취약하다.
profile
개발 시작

0개의 댓글