RESTful API (API)

이준석·2023년 8월 1일
0

API(Application Programming Interface)

해당 단어를 쉽게 말한다면 두 애플리케이션이 서로 통신하는 방법 이라고 할 수 있을 것 같습니다.
API를 통해 서로 다른 소프트웨어 간의 상호작용을 가능하게 합니다.
흔히 웹 프로젝트를 진행하며 API를 사용하는 상황을 아래와 같이 볼 수 있습니다.

  • 프론트엔드가 백엔드에 데이터를 요청하고 응답하는 것
  • 프로젝트서버에서 데이터베이스에 데이터를 요청하고 응답하는 것
  • 프로젝트가 외부 서비스에 데이터를 요청하고 응답 받는 것

요청을 보내는 애플리케이션을 클라이언트라고 하고 응답을 보내는 애플리케이션을 서버라고 합니다.

API는 위에서 말씀드렸다시피 통신하는 방법이라고 합니다.
API는 네 가지 방식으로 작동할 수 있습니다.

  • SOAP API
    클라이언트와 서버는 XML을 사용하여 메시지를 교환합니다. 과거에 더 많이 사용되었으며 유연성이 떨어지는 API입니다.
  • RPC API
    원격 프로시저 호출이라고 부르며, 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송합니다.
  • Websocket API
    양방향 실시간 통신을 지원하는 프로토콜로, 서버와 클라이언트 간에 지속적인 연결을 유지하고 실시간으로 데이터를 주고받을 수 있습니다.
  • GraphQL API
    페이스북에서 개발된 쿼리 언어로, 클라이언트가 필요한 데이터를 정확하게 요청할 수 있게 해줍니다.
  • REST API
    해당 포스트 아래에서 조금 더 자세히 다루겠습니다.

REST API

REST는 Representational State Transfer의 줄임말입니다.
API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다.
HTTP의 주요 저자 중 한 사람인 로이 필딩이 웹(HTTP)의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 합니다.

REST 구성 요소

자원(Resource) - URI

자원은 웹 서비스에서 제공하는 모든 데이터 또는 객체를 의미합니다.
각 자원은 고유한 URI로 식별됩니다.

자원에 대한 행위(Verb) - HTTP METHOD

CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용합니다.

자원에 대한 행위의 내용(Representation) - HTTP Message Pay Load

클라이언트가 자원에 대한 요청을 보내면, 서버는 해당 자원의 표현을 응답으로 반환합니다.
REST에서 자원은 다양한 형식(JSON, XML 등)으로 표현될 수 있습니다.

RESTful API

REST의 기본 원칙을 성실히 지킨 서비스 디자인을 “RESTful”이라고 표현합니다.

그렇다면 REST한 API는 어떻게 만들어야 할까요??

REST API 설계시 지켜야할 중요한 항목 2가지
1. URI는 정보의 자원을 표현한다.
2. 자원에 대한 행위는 HTTP 메서드로 표현한다.

위 글을 저의 생각으로 표현한다며
URI로 원하는 것(명사)을 표현하고, HTTP 메서드로 원하는 행동(동사)을 표현한다.

HTTP메소드

Method역할
GET데이터 조회
POST데이터 생성
PUT데이터 전체 수정 (업데이트)
PATCH데이터 일부 수정 (업데이트)
DELETE데이터 삭제

RESTful API를 만들기 위한 중심 규칙

  1. URI는 행위(동사)를 포함하지 않고 명사를 사용한다.
  2. URI 마지막 문자로 슬래시(/)를 포함하지 않습니다.
  3. 단어의 결합이 불가피한 경우 구분자로 언더바( _ ) 보다 하이픈( - )울 사용해 URI 가독성을 높입니다.
  4. 소문자를 사용합니다.
  5. 파일 확장자는 URI에 포함시키지 않습니다.

참고

RESTful API 설계 가이드
NHN클라우드의 REST API 제대로 알고 사용하기
Spoqa 기술블로그

0개의 댓글