[CS] API와 REST API

코린이·2021년 6월 29일
2

1. API

  • 쉽게 비유를 들어서 위의 그림으로 설명 가능
  • 손님과 요리사 사이에서 점원의 역할이 프로그램과 프로그램 사이의 API 역할이라고 생각하면 됨
  • 즉, 프로그램간의 요청을 편리하게 처리하기 위해 존재한다.

Application Program Interface ( API )의 사전적 정의

프로그램을 작성하기 위한 일련의 부(Sub) 프로그램, 프로토콜 등을 정의하여 상호 작용을 하기 위한 인터페이스 사양

2. REST API (RESTful API)

1) REST API 란?

REST ( Representational State Transfer )

  • 표현 가능한 상태에서의 전달 ( 직역 )
  • 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미
  • REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

2) REST API 설계 기본 규칙

  • URI는 정보의 자원을 표현해야 한다.
  • 자원에 대한 행위는 HTTP Method(GET, PUT, POST, DELETE 등)로 표현한다.
    • URI에 HTTP Method가 들어가면 안된다.
      • Ex) GET /members/delete/1 -> DELETE /members/1
    • 경로 부분 중 변하는 부분은 유일한 값으로 대체한다.(즉, :id는 하나의 특정 resource를 나타내는 고유값이다.)
      Ex) student를 생성하는 route: POST /students
      Ex) id=12인 student를 삭제하는 route: DELETE /students/12

3) REST API 설계 규칙

  1. 슬래시 구분자(/ )는 계층 관계를 나타내는데 사용한다.
    • Ex) http://restapi.example.com/houses/apartments
  1. URI 마지막 문자로 슬래시(/ )를 포함하지 않는다.

    • URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며 URI가 다르다는 것은 리소스가 다르다는 것이고, 역으로 리소스가 다르면 URI도 달라져야 한다.
    • REST API는 분명한 URI를 만들어 통신을 해야 하기 때문에 혼동을 주지 않도록 URI 경로의 마지막에는 슬래시(/)를 사용하지 않는다.
    • Ex) http://restapi.example.com/houses/apartments/ (X)
  2. 하이픈(- )은 URI 가독성을 높이는데 사용

    • 불가피하게 긴 URI경로를 사용하게 된다면 하이픈을 사용해 가독성을 높인다.
  3. 밑줄(_ )은 URI에 사용하지 않는다.

  4. URI 경로에는 소문자가 적합하다.

  5. 파일확장자는 URI에 포함하지 않는다.

  6. 리소스 간에는 연관 관계가 있는 경우

    • /리소스명/리소스 ID/관계가 있는 다른 리소스명
    • Ex) GET : /users/{userid}/devices(일반적으로 소유 ‘has’의 관계를 표현할 때)
profile
백엔드 개발자를 목표로 공부하고 있습니다.

1개의 댓글

comment-user-thumbnail
2021년 6월 29일

합격

답글 달기