REST API란 REST기반으로 서비스 API를 구현한 것이다. 그렇다면, REST가 무언인지 부터 먼저 알아보자.
REST(Representational State Transfer)의 구성요소
1. 자원 : URI
- 이름 붙일수 있는 정보라면 어떤것이든 자원이라고 함
- 모든 자원에 고유한 id가 존재하고 이 자원은 서버에 존재
- 자원을 구별하는 ID는 /groups/:group_id와 같은 HTTP URI다
2. 행위 : HTTP Method
- HTTP프로토콜의 Method를 사용
- HTTP 프로토콜은 GET, POST, PUT, DELETE과 같은 메서드를 제공
3. 표현
- Client가 자원의 상태에 대한 조작을 요청하면 Server는 이에 적절한 응답을 보냄
- REST에서 하나의 자원은 JSON, XML 등 여러 형태의 Representation으로 나타내짐.
REST 특징
1. Server-Client 구조
- 자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client
- REST Server : API를 제공하고 비즈니스 로직 처리 및 저장 책임
- Client: 사용자 인증이나 context등을 직접 관리하고 책임짐
2. Stateless (무상태)
- HTTP프로토콜은 Stateless Protocol로 REST역시 무상태성 가짐
- 요청 간에 클라이언트 정보가 저장되지 않으며 각 요청이 분리되어 있고 서로 연결되지 않음.
- Server는 각각의 요청을 별개의 것으로 인식하고 처리
- 각 API서버는 Client의 요청만을 단순처리
REST API란?
웹 데이터 전송방식 중 한 종류로 REST기반으로 서비스 API를 구현한 것이다. API에서 전송하는 자원을 URI로 표현하고 해당 자원에 행하고자 하는 의도를 HTTP메소드로 정의한다.
동작 방식
URI주소로 HTTP 메소드, 원하는 정보를 요청하면 endpoint의 기능이 동작하면서 필요한 정보와 status code를 client server로 보내줌. 이러한것이 RESTful API방식으로 웹 데이터가 전송된다라고 표현.
REST API 설계 기본 규칙
1. URI는 정보의 자원을 표현해야함
- 동사보단 명사, 대문자보단 소문자
2. 자원에 대한 행위는 HTTP Method(GET,PUT,POST,DELETE 등)로 표현
- URI에 Http Method가 들어가면 안됨
- URI에 행위에 대한 동사표현이 들어가면 안됨.
- 경로 부분중 변하는 부분은 유일한 값으로 대체
3. 슬래시 구분자(/)는 계층관계 나타나는데 사용
4. URI마지막 문자로 슬래시를 포함하지 않음
5. 하이픈(-)은 URI가독성을 높이는데 사용
6. 밑줄(_)은 URI에 사용 안함
REST API 예시
RESTFUL 이란?
REST라는 아키텍쳐를 구현하는 웹서비스를 나타내기 위한 용어로 REST API를 제공하는 웹서비스를 RESTful하다고 함.
References
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
https://velog.io/@haileeyu21/Session-RESTful-API-란-Path-parameters-Query-string
https://hyoveloper.tistory.com/102
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
'CS > 네트워크' 카테고리의 다른 글
[네트워크] Cookie & Session & Token (0) | 2021.08.31 |
---|---|
[네트워크] DNS란? (0) | 2021.08.31 |
[네트워크] HTTP vs HTTPS (0) | 2021.08.30 |
[네트워크] HTTP 메서드 (0) | 2021.08.30 |
[네트워크] TCP vs UDP (0) | 2021.08.30 |
댓글