RESTful API란 무엇인가?

박건영(Parkgunyoung)·2022년 6월 9일
0

til

목록 보기
16/17
post-thumbnail

RESTful API란 무엇인가

RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스입니다

대부분의 비즈니스 애플리케이션은 다양한 태스크를 수행하기 위해 다른 내부 애플리케이션 및 서드 파트 애플리케이션과 통신해야 합니다.

예를 들어 월간 급여 명세서를 생성하려면 인보이스 발행을 자동화하고 내부의 근무 시간 기록 애플리케이션과 통신하기 위해 내부계정 시스템이 데이터를 고객의 뱅킹 시스템과 공유해야 합니다.

RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준 을 따르므로 이러한 정보 교환을 지원합니다.

즉, REST 에는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준 이라는 의미가 내포 되어 있을 거라는 짐작을 할 수 있겠죠?


REST란 무엇인가?

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

역사를 거슬러 2010년 이전 까지만 해도 Server Side에서 데이터를 전달해주는 Client 프록램의 대상은 PC브라우저로 그 대상이 명확했다고 합니다.

그러다보니 JSP, ASP, PHP 등을 이용한 웹페이지를 구성하고 작업을 진행하면 됐죠.

하지만 스마트 기기들의 빠른 성장을 하면서 TV, 스마트폰, 테블릿 등 Client 프로그램이 다양화 되면서 그에 맞추어 Server를 일일이 만든다는 것이 비효율적인 일이 되버렸습니다.

이런과정에서 개발자들은 Client Side를 고려하지 않고 메시지 기반 XML, JSON과 같은 Client 에서 바로 객체로 치환 가능한 형태의 데이터 통신을 지향하게 되면서 Server와 Client의 역할을 분리하게 되었다고 합니다.

이러한 변화를 겪으면서 필요해진 것은 HTTP 표준 규약을 지키면서 API를 만드는 것이 된거죠.

REST API 탄생배경:
  • REST API의 등장은 2000년도에 HTTP의 주요 저자 중 한 명인 로이 필딩이 그 당시 웹 설계의 우수성에 비해 제대로 활용이 되어지지 않는 모습에 안타까워 웹의 장점을 활용할 수 있는 Architecture로써 REST를 발표했다고 한다.

REST 구성

  • 자원(Resource) - URL

  1. 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
  2. 자원을 구별하는 ID는 /api/memo/1 과 같은 HTTP URL 이다.
  • 행위(Verb) - Http Method

  1. HTTP 프로토콜의 Method를 사용한다.
  2. HTTP 프로토콜은 GET,POST,PUT,Delete 와 같은 메서드를 제공한다.
  • 표현(Representations)

  1. Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답을 보낸다.
  2. REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 표현(Representation)dmfh 나타낼 수 있다.
  3. 현재는 대부분 JSON 형태로 주고 받는다고 한다.

REST 규칙

<핵심 규칙>

  • URL은 정보의 자원을 표현해야 한다.
  • 자원에 대한 행위는 HTTP Method로 표현한다.

<세부규칙>

  1. 슬래시 구분자(/)는 계층관계를 나타내는데 사용한다.

  2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다

  • 즉 URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며 URI가 다르다는 것은 리소스가 다르다는 것이다.
  • 역으로 리소스가 다르면 URI도 달라져야 한다.
  1. 하이픈 ( - )은 URI 가독성을 높이는데 사용한다.

  2. 밑줄 ( _ )은 URI에 사용하지 않는다.

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

  • URI 경로에 대문자 사용은 피하도록 한다.
  1. 파일확장자는 URI에 포함하지 않는다.
  • REST API 에서는 메시지 바디 내용의 포맷을 나타내기 위한 파일 확장자를 URI 안에 포함시키지 않는다.
  • 대신 Accept Header 를 사용한다.
  • ex) GET: http://restapi.exam.com/orders/2/Accept: image/jpg
  1. 리소스 간에 연관 관계가 있는 경우
  • /리소스명/리소스ID/관계가 있는 다른 리소스 명
  • ex) GET: /users/2/orders (일반적으로 소유의 관계를 표현할 때 사용)

<정리>

RESTful API는 위와 같은 REST 규칙들을 잘 지키면서 작성된 API이다.

이렇게 작성을 함으로써 클라이언트와-서버의 분리를 할 수 있게 되고 범용적으로 사용성을 보장하는 서버 디자인을 할 수 있게된다!


* 참조
(RESTful API란 무엇인가)

https://aws.amazon.com/ko/what-is/restful-api/

(RESTful API란?)

https://velog.io/@somday/RESTful-API-%EC%9D%B4%EB%9E%80

(REST)

https://ko.wikipedia.org/wiki/REST

profile
쓰러지면어때일어나면그만인걸

0개의 댓글