API와 RESTful API

도람·2025년 7월 20일
post-thumbnail

API, REST API

API란

  • API란 프로그램 간의 상호작용을 위한 매개체이다.

ex)

  • 클라이언트: '구글 화면을 보여달라'요청을 보냄
  • API: 클라이언트의 요청을 받아 서버에 전달
  • 서버: API가 준 요청을 처리해 결과를 만들고 API에 전달
  • API: 최종 결과물을 브라우저에 내보냄.
  • 클라이언트: '구글 화면' 볼 수 있게됨.

REST API란

  • REST API는 웹의 장점을 최대한 활용하는 API이다.
  • Representational State Transfer의 약자로, 자원을 이름으로 구분해 자원의 상태를 주고 받는 API 방식이다.
  • REST API는 기술이 아니라, URL의 설계 방식이다.

REST API의 특징

  • 서버/클라이언트 구조, 캐시 처리 기능, 계층화, 인터페이스 일관성 같은 특징이 있다.

REST API의 장점과 단점

  • 장점
    • URL만 봐도 무슨 행동을 하는 API인지 명확하게 알 수 있다.
    • 상태가 없다는 특징이 있어서 클라이언트/서버의 역할이 명확하게 분리된다.
    • HTTP 표준을 사용하는 모든 플랫폼에서 사용할 수 있다.

  • 단점
    • HTTP 메서드, 즉 GET, POST와 같은 방식의 개수에 제한이 있고, 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없다.

이러한 단점에도 REST API는 주소와 메서드만 보고 요청의 내용을 파악할 수 있다는 강력한 장점이 있어서 현재 많이 사용한다.


REST API를 사용하는 방법

규칙 1. URL에는 동사를 쓰지 말고, 자원을 표시한다

/students/1
/get•student?student_id=1

위 URL에서 첫 번째 URL은 자원만 사용하였으며,
두 번째 URL은 자원이 아닌 다른 표현을 섞어 사용하여 REST API에 부적합한 예시이다.
(get이 아니라 show를쓸 경우 get-student, show-student등 중구난방이 될 경우가 높다.)


규칙 2. 동사는 HTTP 메서드로

  • 동사는 HTTP 메서드라는 것으로 해결한다.
  • HTTP 메서드: 서버에 요청을 하는 방법을 나눈 것으로, GET, POST, PUT, DELETE이다.
    이것을 묶어 크루드(CRUD)라 부른다.

HTTP 메서드 예시

|----------------------------------------------------------|
|			설명				     | 적합한 HTTP 메서드와 URL  |
|--------------------------------|-------------------------|
|•id가 1인 블로그 글을 조회하는 API  | GET/article/1           |
|•블로그 글을 추가하는 API          | POST/articles/1         |
|•블로그 글을 수정하는 API          | PUT/articles/1	       |
|•블로그 글을 삭제하는 API          | DELETE/articles/1       |
|----------------------------------------------------------|

profile
정도를 걷는 엔지니어

0개의 댓글