이 시리즈에서는 JPA 예시 코드를 기반으로, 실제 운영 환경에서 각기 다른 도메인끼리의 통신을 가정한 RESTful API로 디벨롭한다.
- 기본 웹 프로젝트 세팅 완료된 상태에서 시작, 테스트는 POSTMAN 활용
REST API란?
- REST API(Fepresentational State Transfer API) : 웹 기반 애플리케이션 간의 데이터 통신을 간단하고 효율적으로 설계할 수 있는 아키텍처 스타일
REST란?
- Representational State Transfer의 약자
- 자원을 이름으로 구분하여 Client와 Server 사이에서 해당 자원의 상태를 주고받는 모든 것
REST API 특징
- HTTP 프로토콜 기반, 리소스(Resource) 중심 설계
- 모든 데이터는 리소스로 간주
- 리소스는 URL(Uniform Resource Locator)을 통해 고유하게 식별
ex) https://api.example.com/users
- HTTP 메서드를 사용하여 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업 수행
- Create :
POST
- Read :
GET
- Update :
PUT(전체수정), PATCH(부분수정)
- Delete :
DELETE
- 클라이언트-서버 간의 상호작용을 단순화하고 일관성을 제공
- 무상태성(Stateless) : 서버는 클라이언트의 상태를 저장하지 않음.
- 요청마다 필요한 모든 정보(예: 인증 토큰) 반드시 필요
- 표준 응답 구조
- REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 응답을 받을 수 있다.
- JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적
- RESTful URI는 간단하고 직관적이어야 한다.
- 리소스 기반 :
/users (사용자 목록), /users/1 (특정 사용자)
- 복수형 사용 : 리소스 이름은 일반적으로 복수형을 사용합니다.
REST API 설계 예시
리소스: users
| 메서드 | URI | 설명 |
|---|
| GET | /users | 모든 사용자 조회 |
| GET | /users/1 | ID가 1인 사용자 조회 |
| POST | /users | 새로운 사용자 생성 |
| PUT | /users/1 | ID가 1인 사용자 수정 |
| DELETE | /users/1 | ID가 1인 사용자 삭제 |