REST API 서버와 JSON 기초

KKS·2024년 2월 18일
0

SpringBoot

목록 보기
2/2
post-thumbnail

개요

본 포스팅의 목적

  • 다양한 클라이언트의 요청에 응답하는 REST API Server와 응답 데이터 형식인 JSON에 대해 이해한다.
  • 이 때 사용되는 HTTP프로토콜의 기본 메서드를 이해하고, 요청과 응답의 상황별 상태정보를 분석해본다.

REST API와 JSON

1. REST API (Representational State Transfer API)의 등장 배경

  • 웹은 클라이언트와 서버간의 요청과 응답으로 동작하는데, 클라이언트로는 웹 브라우저뿐만 아니라 스마트폰, 태블릿 등 다양하다. 서버는 이러한 다양한 클라이언트의 요청에 일일이 View페이지를 응답하기란 쉽지 않다.
  • REST API란 서버의 자원을 다양한 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계방식으로, HTTP 요청에 대한 응답으로 서버의 자원을 반환한다.
  • 이 때, 서버에서 보내는 응답이 특정 기기에 종속되지 않도록 모든 기기에 통용될 수 있는 데이터(JSON)를 반환한다.
  • 즉, 다양한 클라이언트의 요청에 일일이 View페이지를 응답하는 것이 아니라, JSON 데이터를 응답하는 것이다.

2. JSON (JavaScript Object Notation)

  • JSON이란, 한마디로 말하자면 자바스크립트 방식을 차용한 객체 표현식으로, 키(key)와 값(value)으로 구성된 속성의 집합이다.
  • 아래의 예시는 강아지 객체를 표현하기위한 JSON 데이터이다.
//JSON 데이터 예시)

{
	"name" : "망고",
    "breeds" : "골든리트리버",
    "age" : 2
}

HTTP 요청 메서드와 상태코드(status)의 종류

1. HTTP 요청 메서드의 종류와 역할

HTTP 요청 메서드역할
GET데이터 조회 요청
POST데이터 생성 요청
PUT / PATCH데이터 수정 요청
DELETE데이터 삭제 요청
*  PUT과 PATCH의 차이점
  - PUT : 기존 데이터를 전부 새로운 내용으로 변경, 만약 기존 데이터가 없다면 새로 생성한다.
  - PATCH : 기존 데이터 중에서 일부만 새로운 내용으로 변경할 때 사용된다.

2. HTTP 상태코드의 종류와 의미

HTTP 상태코드의미
2XX클라이언트의 요청 처리 성공
4XX클라이언트의 잘못된 요청
5XX서버 내부 에러

HTTP 요청과 응답 실습 (GET / POST / PUT,PATCH / DELETE)

  • 클라이언트와 서버의 요청과 응답은 HTTP 메세지에 실려 전송된다.
  • 요청할 때는 HTTP 요청 메세지에, 응답할 때는 HTTP 응답 메세지에 내용이 실린다.
  • 연습용 REST API서버인 JSON Placeholder(https://jsonplaceholder.typicode.com)와 요청 및 응답 결과를 확인해볼 수 있는 크롬 확장프로그램 Talend API Tester를 이용하여 상황별로 요청과 응답 결과를 HTTP 메세지를 통해 분석해보자.

1. GET 요청과 응답

  • JSONPlaceholder에서 제공하는 posts 데이터는 100개이다.
  • 만약, https://jsonplaceholder.typicode.com/posts/101 과 같이 잘못된 요청(존재하지 않는 자원 요청)을 하게 된 경우, 상태코드는 404(not found), HTTP 응답 Body는 {}로 비어있는 JSON을 반환하게 될 것이다.

2. POST 요청과 응답

  • 예를 들어, 잘못된 JSON 데이터 형식(ex) 구문 오류)으로 POST요청 시 상태코드는 500(Internal Server Error), HTTP 응답 Body는 SyntaxError: Unexpected token t in JSON at position 6와 같은 에러문구를 반환하게 된다.

3. PATCH 요청과 응답

4. DELETE 요청과 응답

결론

  • 위에서 살펴본 바와 같이 REST API 서버는 특정 자원을 갖고 있고, 클라이언트는 그 자원을 조회할 지, 생성할 지, 수정 및 삭제할 지에 따라 각기 다른 URL(자원의 식별자)HTTP 요청 메서드(행위)를 이용하여 서버에 보다 명확한 의사전달을 한다고 볼 수 있다.

참고자료

  • 코딩 자율학습 : 스프링 부트 3 자바 백엔드 개발 입문(홍팍 저)
profile
공부하고 이해한 내용들을 직접 그림과 표를 그리면서 정리해보는 공간입니다.🤗

0개의 댓글