REST API

호떡·2022년 10월 24일
0

REST API로 구축된 웹 서비스


*응답이 data를 View에 포함한 완성된 페이지가 아니다. JSON이나 XML 형식으로 표현된 data일 뿐이다.


REST란

하나의 URI는 하나의 고유한 리소스를 대표하도록 설계된다는 개념에 전송방식을 경합해서 원하는 작업을 지정


REST 구성

잘 표현된 HTTP URI로 리소스를 정의하고 HTTP method로 리소스에 대한 행위를 정의한다. 리소는 JSON, XML과 같은 여러 가지 언어로 표현할 수 있다.

자원(Resource) - URI

서버는 고유한 리소스 식별자로 각 리소스를 식별한다. REST 서비스의 경우 서버는 일반적은 URL을 사용하여 리소스 식별을 수행한다.

행위(Verb) - HTTP Method

HTTP 메서드는 리소스에 수행해야 하는 작업을 서버에 알려준다. 4가지의 일반적인 HTTP 메서드는 다음과 같다. POST-Create ,GET-Read, PUT-Update, DELETE-Delete이다.
1) POST
클라이언트는 POST를 사용하여 서버에 데이터를 전송한다. 여기에는 요청과 함께 데이터 표현이 포함된다. POST를 통해 해당 URI를 요청하면 리소스를 생성하는데, 동일한 POST 요청을 여러 번 전송하면 동일한 리소스를 여러 번 생성하는 부작용이 있다.
2) GET
클라이언트는 GET을 사용하여 서버의 지정된 URL에 있는 리소스에 액세스한다. 즉, GET을 통해 해당 리소스를 조회한다. 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져올 수 있다.
3) PUT
PUT을 통해 해당 리소스를 수정한다. POST와 달리, RESTful 웹 서비스에서 동일한 PUT 요청을 여러 번 전송해도 결과는 동일하다.
4) DELETE
DELETE를 통해 리소스를 삭제한다. DELETE 요청은 서버 상태를 변경할 수 있다. 하지만 사용자에게 적절한 인증이 없으면 요청은 실패한다.

표현(Representations)


📌 기존의 웹 접근 방식과 REST API 방식의 차이점

  • 기존의 접근 방식은 GET과 POST만으로 자원에 대한 CRUD를 처리하며, URI는 액션을 나타낸다.
  • REST로 변경할 경우 4가지 method를 모두 사용하여 CRUD를 처리하며, URI는 제어하려는 자원을 나타낸다.


REST API

  • 기존의 전송방식과는 달리 서버는 요청으로 받은 리소스에 대해 순수한 데이터를 전송한다.
  • 기존의 GET/POST 외에 PUT, DELETE 방식을 사용하여 리소스에 대한 CRUD 처리를 할 수 있다.
  • HTTP URI 을 통해 제어할 자원(Resource)을 명시하고, HTTP METHOD(GET/POST/PUT/DELETE)를 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍처이다.

📌 기존 Service와 REST API Sevice

기존 Service: 요청에 대한 처리를 한 후 가공된 data를 이용하여 특정 플랫폼에 적합한 형태의 View로 만들어서 반환.
REST Sevice: data 처리만 한다거나, 처리 후 반환될 data가 있다면 JSON이나 XML 형식으로 전달. View에 대해서는 신경 쓸 필요 없음(이러한 이유로 Open API에서 많이 사용)



Spring REST 관련 Annotation 및 클래스


# !!!! 경고 jackson

💡 REST API의 이점 등
링크텍스트

0개의 댓글