RESTful API 의미와 설계규칙

Lys·2023년 9월 6일

개발상식

목록 보기
4/15

REST란?

Representational State Transfer의 약자

  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것

REST의 구성요소

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

즉, REST란

HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
HTTP Method(GET, POST,PUT, DELETE)를 통해
해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다.

*CRUD Operation
Create(데이터 생성)-POST
Read(데이터 조회)-GET
Update(데이터 수정)-PUT
Delete(데이터 삭제)-DELETE

REST의 장, 단점

REST 장점

  • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없다.
  • HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.

REST 단점

  • 표준이 존재하지 않음
  • 사용할 수 있는 메소드가 'HTTP Method' 뿐
  • 구형 브라우저에서 아직 제대로 지원해주지 못하는 부분이 존재
    ex) PUT, DELETE를 사용하지 못 한다.

REST API란?

REST의 특징을 기반으로 서비스 API를 구현한 것
API란

  • 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것

REST API의 특징

1. 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
2. REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
 즉, REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C#, 웹 등을 이용해 클라이언트를 제작할 수 있다.

최근 OpenAPI 등을 제공하는 업체 대부분은 REST API를 제공한다.

REST API의 설계 규칙
1. 소문자를 사용한다.

GET /Members/2 -> GET /members/2
  1. 언더바(_) 대신 하이픈(-)을 사용한다.
http://www.example.com/java_test (X)
http://www.example.com/java-test (o)
  1. 마지막에 슬래시(/)를 포함하지 않는다.
http://www.example.com/test/ (X)
http://www.example.com/test/ (o)
  1. URI에 HTTP Method가 들어가면 안된다
GET http://www.example.com/member/delete/2 (x)
DELETE http://www.example.com/member/2 (o)
  1. URI에 행위에 대한 동사 표현이 들어가면 안된다.(즉, CRUD 기능을 나타내는 것은 URI에 사용하지 않는다.)
GET http://www.example.com/member/insert/2 (x)
POST http://www.example.com/member/2 (o)
  1. 슬래시( / )로 계층 관계를 표현한다.
http://www.example.com/company/member
  1. 파일 확장자는 URL에 포함시키지 않는다.
http://www.example.com/study/photo.jpg (x)
http://www.example.com/study/photo (o)

RESTful API란?

REST의 설계 규칙을 잘 지켜서 설계된 API를 RESTful한 API라고 한다.
즉, REST의 원리를 잘 따르는 시스템을 RESTful이란 용어로 지칭된다.

RESTful의 목적

이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
RESTful한 API를 구현하는 근본적인 목적이 성능 향상에 있는 것이 아니라 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이 주 동기이니,
성능이 중요한 상황에서는 굳이 RESTful한 API를 구현할 필요는 없다.

🙇‍ 참고 사이트 🙇‍

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
https://dev-coco.tistory.com/97
https://dev-cool.tistory.com/32

0개의 댓글