본문 바로가기
교육/Spring

Spring 개발자 수업 110일차(1) - RESTful API

by yhyuk 2021. 9. 2.
728x90
반응형

RESTful API

[ 정의 ]

- REST (Representational State Transfer)

- 웹 상의 자원(데이터)을 자원의 이름으로 표현해서 자원의 상태(값, 정보)를 주고 받는 행위를 의미한다.

- RESTful API와 REST API는 같은 의미라고 생각하면된다.

- HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD 처리를 적용한다.

- REST 아키텍처를 구현한 API (*아키텍처: 시스템 구조를 의미)

- HTTP 기반의 웹 기술 구현

 

[ 수업 목표 ]

- 기존 웹 상의 데이터를 접근하는 방식에서 수정된 "REST" 방식의 접근 방법을 배운다.

 

[ 설계 규칙 ]

  1) URI에서 자원을 표시한다.

  2) URI에 동사(list, add, edit ...)를 표시하지 않는다.

  3) HTTP Method를 사용해서 행동을 표시한다. (도움자료: https://developer.mozilla.org/ko/docs/Web/HTTP/Methods)

이름 설명
  GET   리소스 요청
  POST   데이터 생성
  PUT   데이터 수정(전체 수정, 주로 PATCH 보다 많이쓰인다.
  PATCH   데이터 수정(일부 수정)
  DELETE   데이터 삭제

  4) URI + HTTP Method

  5) 구분자는 '/' 를 사용한다.

  6) URI 마지막에 '/'를 적지 않는다.

  - http://localhost/board  (O)

  - http://localhost/board/ (X)

  7) URL에 '-'(하이픈)을 간간히 사용한다.

  8) URL에 '_'(언더바)는 사용하지 않는다. (에러가 나지는 않지만 가독성 때문에 사용하지 않는다.)

  9) 파일 확장자를 사용하지 않는다.

  10) 반환하는 데이터는 주로 데이터만 반환한다.

  - HTML 소스 반환  (X) ->    페이지 반환    -> 사용범위 -> 브라우저 한정...

  - 순수 데이터 반환 (O) -> XML, JSON 반환 -> 사용범위 -> 다양해짐..(웹, 모바일, 기타 플랫폼 ..)

  11) 이전 server 수업 때 접했던, OpenAPI는 대부분 REST 방식으로 구현 되어있다. 

  - URL 명확 & 반환값 범용 포맷(XML, JSON)

 

[ 기존 방식과 REST 방식의 URL 차이점 ]

- 기존에 우리가 알던 URI에서 어떤 업무인지 알고 있었지만, REST는 URI에서는 알기 어렵지만 요청하는 Method를 통해서 어떤 업무인지 알 수 있다.

  기존 방식 REST 방식
  목록  http://localhost/board/list.do                   (GET)  http://localhost/board          (GET)
  글쓰기  http://localhost/board/add.do                  (POST)  http://localhost/board          (POST)
  수정하기  http://localhost/board/edit.do?seq=1         (POST)  http://localhost/board/:id      (PUT)
  삭제하기  http://localhost/board/del.do?seq=1          (GET)  http://localhost/board/:id      (DELETE)
  검색  http://localhost/board/list.do?word=검색어 (GET)  http://localhost/board/검색어 (GET)

 

[ API 테스트 플랫폼 ]

- REST는 API인데, 여기서 테스트 결과를 우리는 매번 웹 페이지를 통해서 확인을 했다. 하지만 json형식으로 된 데이터를 확인하기에는 많은 불편함이 있었다. 그렇기 때문에 개발된 API를 테스트하기 위한 플랫폼이 여러개 존재한다.

전형적인 json 데이터 모습이다. 매번 브라우저로 확인하기에 불편하다.

  1) Postman (https://www.postman.com/)

 

Postman API Platform | Sign Up for Free

Postman makes API development easy. Our platform offers the tools to simplify each step of the API building process and streamlines collaboration so you can create better APIs faster.

www.postman.com

 

  2) insomnia (https://insomnia.rest/download)

 

Download

Download Insomnia the best API Client for REST, GraphQL, GRPC and OpenAPI design tool for developers

insomnia.rest

 

  3) VSC (확장프로그램: REST Client https://marketplace.visualstudio.com/items?itemName=humao.rest-client )

 

REST Client - Visual Studio Marketplace

Extension for Visual Studio Code - REST Client for Visual Studio Code

marketplace.visualstudio.com

 

- 3개 전부 API 개발을 할 떄 많이 쓰이며 수업에서는 전부 써봤지만, 현재는 insomnia만 사용해서 예제를 살펴볼 예정이다.

 

728x90
반응형

댓글