Java
[Java] REST API 간단 이해
Big Iron
2023. 8. 4. 01:33
REST
RESTful
REST API
RESTful API
개발을 시작하고 많이 보고 들어본 단어들이다. REST가 공통된 위 단어들이 무엇을 뜻하는지 보겠다.
REST (Representational State Transfer)
- CRUD(Create, Read, Update, Delete) 작업을 HTTP 프로토콜을 통해 API를 설계하기 위한 아키텍처 스타일이다
- Stateless(무상태성)이 특징으로 각 요청은 서버에서 어떤 상태도 저장하지 않아야 함. 모든 정보는 각 요청 안에 포함되어야 한다
- 사용자가 로그인한 상태에서 API를 호출한다고 했을 때, 이 요청을 누가 요청했는지에 대한 정보 (토큰, 세션 정보)를 포함해야 함(요청을 처리하기 위한 모든 필요한 요소)
RESTful
- REST 원칙을 따르는 것을 의미함. -> REST 원칙을 준수한 서비스를 의미
REST API
- REST 원칙을 기반으로 한 API(Application Programming Interface)이다.
URI 예시GET /books – 책 전체 리스트 조회 API GET /books/1 – 전체 책 리스트에서 1번 책 조회 API POST /books – 새로운 책 추가 API PUT /books - 5번 책의 전체 정보 수정 API PATCH /books/5 – 5번 책의 일부 정보 수정 API DELETE /books/5 - 5번 책 삭제 API
RESTful API
- REST 원칙을 따르는 API를 의미
REST API 네이밍 컨벤션
자원 이름은 명사를 사용한다
O: /users, /products
X: /getUser, /createProduct복수 명사 사용
O: /users (사용자 전체를 나타냄)
X: /userHTTP 메서드에대한 내용이 직접적으로 표현되지 않아야 한다
O: /users/1, /products/1
X: /users/update, /createProduct, /users/delete/1 ...2번에 내용을 더하자면, 자원에 대한 행위는 HTTP 메서드로 표현한다
GET: 리소스 조회
POST: 리소스 생성
PUT or PATCH: 리소스 수정
DELETE: 리소스 삭제
-> http메서드로 get, post, delete, update 등을 정의하고 uri에는 표현하지 않는다.자원의 계층 구조는 /로 나타냄
ex) /users/1/orders (1번 사용자의 전체 주문들)
ex) /users/1/orders/1 (1번 사용자의 1번 주문)쿼리 파라미터는 필터, 페이징, 정렬 등의 목적
ex) /users?role=admin (관리자 역할을 가진 사용자만 조회)상태 코드 활용 (클라이언트와 소통에 편하다)
Ok: 200
Created: 201
Bad Request: 400
Not Found: 404
등등