RESTful API 개념

Jiwon Yang·2019년 11월 30일
0
post-thumbnail
post-custom-banner

Rest란?


  • "Respresentational State Transfer"
  • 즉, 자원을 표현을 통하여 상태를 전달하는 방식
  • HTTP URI(Uniform Resourc Identifier)를 통해서 자원(Resource)를 명시하고, HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원에 대해 CRUD(Create, Read, Update, Delete)를 처리한다.

RESTful API란?


  • REST 기반으로 서비스 API를 구현하는 것

1) 왜 RESTful API를 사용하는가?

  • REST기반으로 시스템을 분산하여 확장성과 재사용성을 높여 유지 보수 및 운용을 편리하게 유지할 수 있기 때문
  • HTTP 표준을 기반으로 구현되므로 HTTP를 지원하는 프로그래밍 언어로 클라이언트와 서버를 구현할 수 있기 때문

2) 어떻게 RESTful API를 설계하는가?

  • RESTful API는 HTTP Method, URI, Data를 결합하여 표현됩니다. 특히, DataURI어떤 자원을 원하는지 표현하고, HTTP Method로 그 자원을 어떻게 하고 싶은지 표현합니다.

1. HTTP Method

  • 	- `GET` : 가져오다
    - 기본적으로, GET 요청은 리소스를 변경하지 않고, READ-ONLY 하는 경우에 사용된다.
    - POST : 게시하다
    - PUT : 집어넣다
    • PATCH : 지우다
      - DELETE : 고치다

2. URI

  • 일반적으로 URI는 명사로만 표현된다.
    • 동사 부분은 Method가 담당하고 있기 때문
    • GET cards/1/delete (잘못된 표현)
    • DELETE cards/1 (옳은 표현)
  • 리소스 간에 계층 관계/로 나타낸다.
    - GET cards/3/title
    • cards 중에서 id가 3인 것의 title을 불러온다.
    • Card와 같은 모델은 cards처럼 복수로 나타내면 더 이해하기 쉽다.
  • 리소스 간에 연관 관계 는 다음과 같이 나타낸다.
    - GET /users/:userid/devices (has 표현)
    • userid와 맞는 user가 가지고 있는 devices를 불러온다.

3. Data

  • param
    ex) GET /cards/:id 에서 id에 해당하는 부분
  • body.param
    ex) POST /cards 에서 숨겨서 보내지는 부분
  • query.param
    ex) GET /cards?id=3 에서 id에 해당하는 부분

3) RESTful API 예시

  • GET cards/1 : id가 1인 card를 가져온다.
  • DELETE cards/1 : id가 1인 card를 삭제한다.

참고자료


profile
안녕하세요 양지원입니다
post-custom-banner

0개의 댓글