Restful api

김정현·2025년 2월 14일
0

JAVA

목록 보기
26/26

REST(Representational State Transfer)

웹에서 리소스를 효과적으로 다루는 방식이다.

  • 리소스: 웹에서 관리할 대상(데이터, 자원)

✔ RESTful API는 REST 원칙을 지키는 API
✔ 리소스 중심의 설계 + HTTP 메서드 활용
✔ 일관성 있고, 확장 가능하며, 유지보수하기 쉬운 구조
✔ URI는 리소스를 표현하고, 동작은 HTTP 메서드로

- 장점

  1. 일관된 인터페이스
  2. 확장성
  3. 유지보수 용이
  4. 다양한 클라이언트와 호환
  5. 캐싱 가능

- 원칙

  • 리소스명은 복수형 (/users 대신 /user ❌ → /users ⭕)
  • 행동(동사)은 URL이 아니라 HTTP 메서드로 표현 (/getUser ❌ → GET /users/1 ⭕)
  • 계층적 구조 유지 (/users/1/posts → 1번 사용자 게시글)
  • 필요한 경우 쿼리 스트링 사용 (/users?role=admin)
  • 하위 리소스를 나타낼 때는 슬래시(/) 사용 (/posts/1/comments/2 → 1번 게시글의 2번 댓글)

restful에서는 리소스 자체를 식별하는 데는 쿼리스트링을 사용하지 않는다.

- 쿼리스트링을 사용할 때

  • 리소스를 필터링, 정렬, 페이징

예)
쿼리스트링 사용 예

검색 (필터링)	GET /posts?skey=REST (REST 관련 게시글 검색)
정렬	GET /posts?sort=date_DESC (날짜 내림차순 정렬)
페이징	GET /posts?page=2&limit=10 (2페이지, 10개씩)
복합 검색	GET /posts?skey=API&sort=likes_DESC&page=1&limit=5

사용하지 않는 예

GET /users/1   (URI로 리소스 식별)
GET /posts/10  (URI로 특정 게시글 조회)

결론 리소스를 적절하게 효율적으로 다루는 것이 중요하다.

0개의 댓글

관련 채용 정보