REST API

REST API는 URI로 식별되는 리소스를 관리하기 위해 HTTP 메서드를 활용하여 확장 가능하고 유연한 웹 서비스를 가능하게 합니다.

REST [API](/ko/terms/rest-api)는 애플리케이션을 고유한 URI로 식별되는 리소스 컬렉션으로 모델링합니다. 클라이언트는 고정된 연산 세트를 사용하여 이러한 리소스와 상호 작용하며, 이는 일반적으로 HTTP 메서드(GET, POST, PUT, PATCH, DELETE)에 매핑됩니다. 주요 제약 조건에는 상태 비저장성(요청 간 서버 측 클라이언트 컨텍스트 없음), 균일한 인터페이스(표준화된 메서드, URI 및 미디어 유형), 클라이언트-서버 분리, 캐싱 가능성 및 계층형 시스템이 포함됩니다. 표현(일반적으로 JSON 또는 XML)은 HTTP를 통해 전송되며, 콘텐츠 협상, 버전 관리 및 HATEOAS(선택 사항)는 클라이언트 상호 작용을 안내합니다. REST는 프로토콜이 아닌 아키텍처 스타일이며 웹과 잘 맞지만, 실제 RESTful 디자인은 과다 조회, 과소 조회 및 인증, 권한 부여, 전송 보안(TLS)과 같은 보안 문제를 균형 있게 고려해야 합니다.

        graph LR
  Center["REST API"]:::main
  Pre_http["http"]:::pre --> Center
  click Pre_http "/terms/http"
  Pre_api["api"]:::pre --> Center
  click Pre_api "/terms/api"
  Rel_apache_http_server["apache-http-server"]:::related -.-> Center
  click Rel_apache_http_server "/terms/apache-http-server"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5살도 이해할 수 있게 설명

자판기와 같습니다. 원하는 물건을 고르고 돈을 넣습니다. 자판기는 당신이 누구인지 기억하지 않습니다.

🤓 Expert Deep Dive

Roy Fielding이 제안했습니다. HATEOAS를 통해 클라이언트가 동적으로 API를 탐색할 수 있게 합니다.

🔗 관련 용어

선행 지식:

📚 출처