[Spring Boot] Rest API & JSON

준우·2022년 6월 16일
0

Spring Boot

목록 보기
5/8
post-thumbnail

REST API란?

웹서비스는 클라이언트와 서버간의 요청과 응답으로 이루어진다. 그런데, 클라이언트는 브라우저 뿐 아니라 PC, 스마트폰, 스마트워치, 태블릿 등 다양한 기기의 형태로도 존재하고 있다. 심지어는 계속 새롭게 발전까지하고 있다. 서버는 수많은 클라이언트 환경에 구애받지 않고 적절한 응답을 해야할 것이다. 그 대안이 바로 REST API다. 특정 기기에 종속되지 않고 모든 기기에서 통용될 수 있도록 화면이 아니라 데이터를 응답하는 것이다. 이런 응답은 과거 XML 형태에서 현재 JSON 형태로 변화하고 있는 추세이다.

XML : 사용자 정의형 HTML
JSON : JavaScript 방식을 차용한 객체 표현식

XML

<article-form>
    <id>1</id>
    <title>오늘은</title>
    <content>치킨이 먹고싶어라..!</content>
</article-form>

JSON

{
  "id": 1,
  "title": "오늘은",
  "content": "치킨이 먹고싶어라..!"
}

실습 준비

JSONPlaceholder

위 링크는 무료로 가짜 데이터를 생성하고, 조회하고, 수정하고, 삭제할 수 있는 API를 제공하는 사이트다.

이미지에 안내된 대로 100개의 게시글, 500개의 댓글 등을 이용할 수 있다.

데이터 조회는 GET, 생성은 POST, 수정은 PUT/PATCH, 삭제는 DELETE 메소드를 사용한다.

Talend API Tester 설치

크롬 웹스토어에서 Talend API Tester 를 검색하거나, 링크에 접속하여 확장 프로그램을 설치한 뒤

크롬 브라우저 우측 상단의 퍼즐 아이콘을 누른 뒤, 핀 아이콘을 클릭해 고정시키고, Talend API Tester의 아이콘을 클릭해서 웹에 접속한다.

API 실습

Status Code

Successful : 200(OK), 201(Created)
Client Error : 404(Not Found)
Server Error : 500(Internal Server Error)

POST

201 응답코드

이번에는 게시글 생성을 위해 Method를 POST 로 설정하고, URL에는 https://jsonplaceholder.typicode.com/posts/ 를 입력한 뒤
Body에 {"":"", "":""} 형태로 알맞게 JSON 데이터를 만들고 SEND 한다.

알맞게 전송한다면 위와 같이 201 Response를 받는다.

500 응답코드

만약 위 이미지처럼 {"":"", "":""} 가 아니라, { :"", :""} 처럼 잘못된 JSON 형식 데이터를 보내면 500 에러가 발생한다. 500에러는 내부 서버 오류로, 원인은 요청을 보낸 쪽에서 내부적으로 찾아야 한다

HTTP 응답 구조

Request


위 이미지는 Client 가 보낸 JSON 데이터의 HTTP 요청 데이터다. 응답 구조는 아래와 같다.

  • Request Line : POST /posts/ HTTP/1.1
  • Header :Content-Length: ... Host: ...
  • Body : {"":"", "":""}

여기서 Header는 편지 봉투로, Body는 편지 내용으로 이해할 수 있다.

Response

위는 Server의 응답 데이터다. 응답 구조는 아래와 같다.

  • Status Line : HTTP/1.1 201
  • Header :date: ... alt-svc: ...
  • Body : {"":"", "":""}

GET

200 응답코드

Talend API 에서 Method는 GET 으로 설정하고, URL에는 https://jsonplaceholder.typicode.com/posts/ 를 입력한 뒤 SEND 한다.

응답으로 HTTP STATUS CODE 200을 받았다.

응답 BODY에는 위에서 살펴본대로 1부터 100까지의 post들이 JSON 방식으로 전달됨을 확인할 수 있다.

404 응답코드

만약 위와 같이 /posts/101 로 GET 요청을 보내는 경우 404 NOT FOUND 오류가 발생한다.

PUT/PATCH

200 응답코드


위와 같이 Method를 PATCH 로 설정하고, URL에는 https://jsonplaceholder.typicode.com/posts/1 를 입력한 뒤, 수정할 데이터를 body 에 입력 후 SEND 한다.

응답으로 200 코드를 받았고, 수정 데이터대로 title과 body가 변경되었음을 확인할 수 있다.

DELETE

마지막으로 삭제를 위해 Method를 DELETE 로 설정하고, URL에는 https://jsonplaceholder.typicode.com/posts/1 를 입력한 뒤 SEND 한다.

응답으로 200 코드를 받았고, 1번 게시글을 삭제했다.

👼 Reference

0개의 댓글