정의
REST
주소와 행위로 자원을 컨트롤하는 통신규약
http uri를 통해 자원을 명시하고, http method를 통해 자원에 대한 CRUD 오퍼레이션을 적용하도록 설계된 아키텍처
REST API
REST의 설계 규칙을 준수하는 API
특징
- Uniform Interface
- 각 자원은 독립적인 인터페이스를 가지며, URL로 식별
- 자원의 상태는 HTTP 메서드를 통해 조작될 수 있어야 함
- HTTP 헤더에 타입을 명시하고 각 자원은 MIME type에 맞춰 표현되어야 함 (ex application/json)
- 하이퍼링크에 따라 다른 페이지를 보여줘야 하며, 데이터마다 어떤 URL에서 원했는지 명시 필요
- Stateless
- 서버는 클라이언트의 상태를 저장하지 않으며, 각 요청은 독립적
- Cacheable
- HTTP 프로토콜의 캐싱 기능 사용하여 성능 향상 가능
- Client-Server 구조
- Layered System
URI 규칙
- HTTP 메소드 사용: URL에 동작을 포함시키지 않고 HTTP 메소드로만 동작을 정의
- 확장자 사용 금지:
.jpg등 사용 금지
- 명사 사용: 동사 < 명사 사용
- 소문자 또는
- 사용
- HTTP 상태 코드 활용
예시
@GetMapping("/study-groups")
@PostMapping("/study-groups")
@GetMapping("/study-groups/{groupId}")
@PutMapping("/study-groups/{groupId}")
@DeleteMapping("/study-groups/{groupId}")
참조
- URL: 자원의 위치
- URN: 자원의 이름
- URI = URL+URN, 네트워크상 자원의 고유 식별자

REF