REST api vs RESTful api

기술노트

🔁 RESTful API vs 비RESTful API 비교

RESTful API는 REST 원칙(자원 중심 URI, HTTP 메서드의 의미, 상태 코드 사용 등)을 따르는 반면, 비RESTful API는 이를 지키지 않아 구조적으로 일관성이 떨어지고 유지보수가 어렵습니다.

📊 비교 표

RESTful API vs 비RESTful API
구분 비RESTful API RESTful API 설명
URI 설계 /getUser?id=1 /users/1 REST는 자원 중심 URI 사용, 동사는 피함
HTTP 메서드 POST /deleteUser DELETE /users/1 메서드 자체가 동작을 의미
리소스 명 /userlist, /createUser /users 복수형 자원 명 사용
상태 코드 항상 200 OK 201, 204, 404 클라이언트가 처리 결과를 정확히 알 수 있음
동작 전달 방식 /do?action=delete&id=1 DELETE /users/1 REST는 메서드+URI로 동작 구분
관계 표현 /getCommentsByPostId?id=10 /posts/10/comments URI 계층 구조로 관계 표현

❌ 비RESTful API의 문제점

  • 동작의 의미가 URI에 노출되어 직관성이 떨어짐
  • 클라이언트가 기능을 추측해야 하며, API 문서화가 어려움
  • HTTP의 기능을 활용하지 못함 (상태 코드, 캐시, 멱등성 등)
  • 자동화 도구(Swagger, Postman 등)와의 호환성 저하

✅ RESTful API의 장점

  • 표준화된 HTTP 메서드 활용 (GET, POST, PUT, DELETE)
  • 자원 중심 URI 설계 (예: /users/1/orders)
  • 명확한 상태 코드 제공 → 에러 처리 용이
  • 확장성 우수 → 기능 추가 및 구조 변경이 유연함
  • API 문서화 및 테스트 도구와 호환 우수

🧪 실전 예시

사용자 삭제 요청

RESTful vs 비RESTful 예시
방식 URI 메서드 설명
비RESTful /deleteUser?id=5 POST URI에 동사 사용, HTTP 메서드 고정
RESTful /users/5 DELETE 자원과 동작 분리, 명확한 표현