[네트워크] REST API

DEV_HOYA·2023년 12월 19일
0

CS

목록 보기
40/55
post-thumbnail
post-custom-banner

📌 REST API

  • Restful한 API를 말함
  • 일련의 특징과 규칙 등을 지키는 API
  • 쿼리스트링을 혼재해서 쓰기도 함

✅ 쿼리스트링

  • ?뒤에 오는 문장
/shopping/products?name=hat

⭐ REST API의 특징

✅ 1. Uniform-Interface

  • 자원들은 각각의 독립적인 인터페이스를 가짐
    ex) 웹페이지를 변경했다고 웹브라우저를 업데이트하는 일은 없어야 함

url 자원식별

  • 자원은 url로 식별되어야 함

표현을 통한 자원조작

  • url과 HTTP 표준 메소드(GET, DELETE)등을 이용하여 자원을 조회/삭제 등 작업을 설명할 수 있는 정보가 포함되어야 함
# 잘못된 예시
url/getProduct

# 잘된 예시
url/Product
메소드 : GET

Self-descriptive messages

  • HTTP header에 타입을 명시하고 각 메시지(자원)들은 MIME types에 맞춰 표현되어야 함
    ex) application/json, text/csv, text/plain

HATEOAS 구조

  • Hypermedia As The Engine Of Application State
  • 하이퍼링크에 따라 다른 페이지를 표시해야 하며 데이터마다 어떤 URL에서 원했는지 명시해주어야 함
  • 보통 href, links, link, url 속성 중 하나에 해당 데이터의 URL을 담아서 표기

✅ 2. Stateless

  • HTTP 자체가 stateless하기 때문에 HTTP를 이용하는 것만으로도 만족
  • REST API를 제공하는 서버는 세션을 해당 서버쪽에 유지하지 않음을 의미

✅ 3. Cacheable

  • HTTP는 아무런 로직을 구현하지 않아도 자동적으로 캐싱이 됨

✅ 4. 클라이언트 - 서버 구조

  • 서로 독립적인 구조를 가져야 함(HTTP 자동 만족)

✅ 5. Layered System

  • Web기반 서비스는 보통 계층구조를 가지게 됨

⭐ REST API의 6가지 URL규칙

  1. 동작은 HTTP 메소드로만 해야하고 URL에 해당 내용이 들어가면 안됨

  2. 확장자 표시하면 안됨

  3. 동사가 아닌 명사로만 표기

  4. 계층적인 내용을 담고있어야 함

  5. 소문자로만 쓰며, 언더바가 아닌 그냥 바( - )를 사용

  6. HTTP 상태코드를 활용(200, 300)

post-custom-banner

0개의 댓글