
HTTP는 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 지원한다. 실제로는 서버가 HTTP 메서드를 기존 설명에 맞게 사용하지 않더라도, 프로그램 개발은 가능하다. 하지만 각 서비스가 서로 다른 방식으로 개발하면, 개발자 사이의 소통에 문제가 발생할 수 있다. 따라서 기준이 되는 아키텍처로 REST를 채택할수 있다.
Representational State Transfer의 약자, 특정한 자원에 대하여, 자원의 상태에 대한 정보를 주고받는 개발 방식
HTTP URI(Uniform Resource Indentifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통행 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.
대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create, Read, Update, Delete를 묶어서 일컫는 말
| 구분 | 설명 |
|---|---|
| 자원(resource) | URI을 이용 |
| 행위(verb) | HTTP 메서드를 이용 |
| 표현(representation) | 페이로드(payload)를 이용 |
Rest 방식을 채택한 서버로 요청(request)을 보내는 예시
1. 클라이언트가 회원가입을 하고 싶은 상태이다.
2. 이때, 아이디는 "gildong", 비밀번호는 "1234"로 설정하고 싶다면?
| 구분 | 설명 |
|---|---|
| 자원 | 회원(user) |
| 행위 | 회원 등록 |
| 표현 | 아이디: "gildong", 비밀번호 "1234" |
-> 패킷으로 표현하면
URI : https://www.example.com/users
HTTP Method : POST
Payload : {"id" : "gildong", "password" : "1234"}
장점
단점
Application Programming Interface, 프로그램이 상호작용하기 위한 인터페이스
애플리케이션 간에 데이터나 기능을 교환할 수 있도록 하는 일련의 규칙이나 프로토콜이다.
REST 아키텍처를 따르는 API
규칙
1. URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야한다.
2. 마지막에 슬래시를 포함하지 않는다.
3. 언더바 대신 하이폰을 사용한다.
4. 파일확장자는 URI에 포함하지 않는다.
5. 행위를 포함하지 않는다.
REST 방식을 따르고 있는 서버에 특정한 요청(request)을 전송하는 행위
목킹(Mocking) : 어떠한 기능이 있는 것처럼 흉내내어 구현한 것을 의미한다.
처음부터 모든 서버 기능을 개발하고, 클라이언트 개발을 시작하면 개발 일정에 지연이 생길 수 있다. 따라서 클라이언트 개발을 위해 서버 기능을 테스트할 때 목킹을
REST의 원리를 따르는 시스템을 의미
REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다고 할 수 있다.
REST API의 설계 규칙을 올바르게 지키지 못한 시스템은 REST API를 사용하지만 RESTful 하지 못한 시스템이라고 할 수 있다.