SDWoo
SDWoo의 개발일기
SDWoo
전체 방문자
오늘
어제
  • 분류 전체보기 (21)
    • 데브코스 (4)
    • TIL (13)
    • javascript (4)
    • react (0)
    • 알고리즘 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • linkedlist
  • 무한스크롤
  • async/await
  • 디스트럭처링할당
  • Promise
  • addEventListener
  • 신규 아이디 추천
  • RESTAPI 설계 원칙 #까먹지말것
  • Til
  • 제네레이터
  • JavaScript #TIL #VanillaJS
  • 프로그래머스
  • cypress
  • 이벤트루프
  • javascrip
  • 선형
  • 호이스팅
  • 행맨
  • 비동기
  • Typing-Game
  • Spread문법
  • deepdiv
  • es6
  • vanilaJS
  • 알고리즘
  • vanillajs
  • JavaScript
  • This
  • 데브코스
  • intersectionobserver

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
SDWoo

SDWoo의 개발일기

💪REST API 설계 원칙
javascript

💪REST API 설계 원칙

2022. 9. 28. 18:17

- REST: URI를 통해 자원을 표시하고, HTTP Method를 이용하여 해당 자원의 행위를 규정하여 그 결과를 받는 것을 의미한다.

- REST API: REST를 기반으로 서비스 API를 구현한 것을 의미한다.

- 자원(URI), 행위(HTTP 표현 메서드), 표현(페이로드)의 세가지 요소로 구성됨

 

👊 REST의 특징

1) Uniform:  URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍쳐 스타일을 의미한다.

2) Stateless: 작업을 위한 상태정보를 따로 저장하고 관리하지 않으며, 서버로 들어오는 요청만 단순히 처리하면 된다.
3) Cacheable: HTTP라는 기존 웹 표준을 그대로 사용하고 있기 때문에, 웹에서 사용하는 기존 인프라를 그대로 활용할 수 있다. 따라서 HTTP가 가진 캐싱 기능을 사용할 수 있다.

4) Self-descriptiveness: REST API 메시지만 보고도 이를 쉽게 표현할 수 있는 자체 표현 구조로 되어있다.

5) Client - Server 구조: REST서버는 API 제공, 클라이언트는 사용자 인증이나 세션, 로그인 정보 등을 직접 관리하는 구조로 각각의 역할을 확실하게 구분한다.
6) 계층형 구조: REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조 상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간 매체를 사용할 수 있게 한다.

 

👊 REST API 설계 원칙

 

1.URI는 리소스를 표현해야한다.  

- 동사보다는 명사를 사용해야한다.

- 행위에 대한 표현이 들어가서는 안된다. 리소스를 표현하는데 중점을 둔다.

 

2.리소스에 대한 행위는 HTTP 요청 메서드로 표현한다.

- 클라이언트가 서버에게 요청의 종류와 목적을 알리는 방법

- GET, POST, PUT, PATCH, DELETE 등을 사용하여 CRUD를 구현

 

GET: 리소스에서 모든 정보를 취득한다.

POST: 해당 리소스에 서버로 전송한 페이로드를 생성한다.

PUT: 특정 리소스 전체를 교체할때 사용한다.

PATCH: 특정 리소스의 일부만 교체할 때 사용한다.

DELETE: 리소스의 id를 사용하여 특정 리소스를 삭제한다.

 

ex) DELETE /member/1 , GET /member/delete/1 등 

'javascript' 카테고리의 다른 글

[JavaScript] addEventListener에서의 this 바인딩  (0) 2022.08.18
[JavaScript] JavaScript 로 TDD 및 테스트 코드 작성 하기 (cypress)  (0) 2022.08.15
JavaScript로 알고리즘 준비하기(1) - 정규 표현식(문자열 갖고놀기)  (0) 2022.04.14
    'javascript' 카테고리의 다른 글
    • [JavaScript] addEventListener에서의 this 바인딩
    • [JavaScript] JavaScript 로 TDD 및 테스트 코드 작성 하기 (cypress)
    • JavaScript로 알고리즘 준비하기(1) - 정규 표현식(문자열 갖고놀기)
    SDWoo
    SDWoo

    티스토리툴바