Restful Api란?

김영석·2023년 5월 29일
0

API란?

어플리캐인션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다. 다른 어플리케이션이 프로그램밍 방식으로 어플리케이션과 통신 할수 있도록 API를 표시하거나 생성합니다.

웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각 할 수 있습니다.

Rest란?

Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처 입니다.

  • 자원의 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 것을 의미합니다.
  • HTTP URI를 통해 자원을 명시하고 HTTP Method(POST,GET,PUT,DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
  • REST는 자원 기반의 구조 설계의 중심에 리소스가 있고 HTTP Method를 통해 자원을 처리하도록 설계된 아키텍쳐를 의미한다.

REST API 설계 규칙

  1. 슬래시 구분자(/ )는 계층 관계를 나타내는데 사용한다.
    Ex) http://restapi.example.com/houses/apartments
  2. URI 마지막 문자로 슬래시(/ )를 포함하지 않는다.
    URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며 URI가 다르다는 것은 리소스가 다르다는 것이고, 역으로 리소스가 다르면 URI도 달라져야 한다.
  3. REST API는 분명한 URI를 만들어 통신을 해야 하기 때문에 혼동을 주지 않도록 URI 경로의 마지막에는 슬래시(/)를 사용하지 않는다.
    Ex) http://restapi.example.com/houses/apartments/ (X)
  4. 하이픈(- )은 URI 가독성을 높이는데 사용
    불가피하게 긴 URI경로를 사용하게 된다면 하이픈을 사용해 가독성을 높인다.
  5. 밑줄(_ )은 URI에 사용하지 않는다.
    밑줄은 보기 어렵거나 밑줄 때문에 문자가 가려지기도 하므로 가독성을 위해 밑줄은 사용하지 않는다.
  6. URI 경로에는 소문자가 적합하다.
    URI 경로에 대문자 사용은 피하도록 한다.
  7. REST API에서는 메시지 바디 내용의 포맷을 나타내기 위한 파일 확장자를 URI 안에 포함시키지 않는다.
    Ex) GET / members/soccer/345/photo HTTP/1.1 Host: restapi.example.com Accept: image/jpg (O)
  8. 리소스 간에는 연관 관계가 있는 경우
    /리소스명/리소스 ID/관계가 있는 다른 리소스명
    Ex) GET : /users/{userid}/devices (일반적으로 소유 ‘has’의 관계를 표현할 때)

RESTful Api 사용하는 이유

  • RESTful은 REST원리를 따르는 시스템
  • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것

정리

REST API 는 크게는 아래 2개로 구성, 각 구성마다 설계 원칙 존재
설계 원칙을 잘 지켰다면 “RESTful 하다.” 라고 표현합니다.

  • (1) URI(URL) = 목적어, 자원 - 어떤 자원(Resource)에 대해
  • (2) Method = 동사 - 어떤 행위(Method)를 할것인지
  • (3) Representation of Resource = 표현 - JSON, XML …

RESTful 하다면 (1) URI 와 (2) Method 만 보고도 해당 API 가 어떤 역할을 하는지 바로 알수있어야 합니다.

출처

profile
백엔드 개발자

0개의 댓글