[CS] REST API

최지나·2024년 1월 2일
1

CS

목록 보기
41/55

정의

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 상태 코드 활용

예시

// 스터디 그룹 관련 API
@GetMapping("/study-groups")
// 모든 스터디 그룹 조회
@PostMapping("/study-groups")
// 새 스터디 그룹 생성
@GetMapping("/study-groups/{groupId}")
// 특정 스터디 그룹 조회
@PutMapping("/study-groups/{groupId}")
// 특정 스터디 그룹 수정
@DeleteMapping("/study-groups/{groupId}")
// 특정 스터디 그룹 삭제

참조

  • URL: 자원의 위치
  • URN: 자원의 이름
  • URI = URL+URN, 네트워크상 자원의 고유 식별자


REF

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글