
https://mannhowie.com/rest-api
GET: 자원의 조회POST: 자원의 생성PUT: 자원의 전체 수정PATCH: 자원의 부분 수정DELETE: 자원의 삭제[c.f.] URI?
| 용어 | 설명 | 예시 |
|---|---|---|
| URI | 자원을 식별하는 모든 문자열 (포괄적 개념) | https://example.com/index.htmlurn:isbn:0451450523 |
| URL | 자원의 위치를 알려주는 URI (주소 역할) | https://example.com/index.html |
| URN | 자원의 이름을 지정하는 URI (위치 불명) | urn:isbn:0451450523 |
1. 자원의 명확한 식별 (Resource Identification)
RESTful API에서 자원은 고유한 URI(Uniform Resource Identifier)로 식별됨
자원은 명사로 표현해야 하며, URI는 대체로 복수형으로 사용함
자원의 표현 (Representation)
자원의 표현을 JSON이나 XML과 같은 포맷으로 클라이언트에 전달
클라이언트는 이 표현을 받아 자원의 상태를 표시하거나 처리할 수 있음
자원의 상태나 행동은 HTTP 메서드를 통해 정의됨
e.g.
/users → 사용자 목록/users/{id} → 특정 사용자/products → 상품 목록/products/{id} → 특정 상품2. HTTP 메서드를 이용한 작업 정의
RESTful API에서는 HTTP 메서드를 사용하여 자원에 대한 작업을 정의함
GET: 자원을 조회
e.g. GET /users → 모든 사용자 조회
[+] 필터링, 정렬, 페이징
클라이언트가 대량의 데이터를 요청할 때, 효율적인 데이터 처리가 가능
/users?age=25&sort=name&limit=10&page=2
POST: 새로운 자원을 생성
e.g. POST /users → 새 사용자 생성
PUT: 자원의 전체 수정
e.g. PUT /users/1 → ID가 1인 사용자 정보 수정
PATCH: 자원의 부분 수정을 할 때 사용
e.g. PATCH /users/1 → ID가 1인 사용자 이름 수정
DELETE: 자원을 삭제
e.g. DELETE /users/1 → ID가 1인 사용자 삭제
3. 무상태성 (Stateless)
4. HTTP 상태 코드
요청의 결과를 표현함
상태 코드는 클라이언트가 요청에 대한 응답을 쉽게 이해할 수 있도록 도움
200 OK: 요청이 성공적으로 처리되었을 때201 Created: 새로운 자원이 성공적으로 생성되었을 때400 Bad Request: 잘못된 요청이 있을 때401 Unauthorized: 인증이 필요한 요청에 대해 인증이 없는 경우404 Not Found: 요청한 자원이 존재하지 않을 때500 Internal Server Error: 서버 오류가 발생했을 때5. 계층적 시스템 (Layered System)
6. 캐시 처리 (Cacheable)
Cache-Control: max-age=3600 → 해당 자원을 1시간 동안 캐시