
웹서비스는 클라이언트와 서버간의 요청과 응답으로 이루어진다. 그런데, 클라이언트는 브라우저 뿐 아니라 PC, 스마트폰, 스마트워치, 태블릿 등 다양한 기기의 형태로도 존재하고 있다. 심지어는 계속 새롭게 발전까지하고 있다. 서버는 수많은 클라이언트 환경에 구애받지 않고 적절한 응답을 해야할 것이다. 그 대안이 바로 REST API다. 특정 기기에 종속되지 않고 모든 기기에서 통용될 수 있도록 화면이 아니라 데이터를 응답하는 것이다. 이런 응답은 과거 XML 형태에서 현재 JSON 형태로 변화하고 있는 추세이다.
XML : 사용자 정의형 HTML
JSON : JavaScript 방식을 차용한 객체 표현식
<article-form>
<id>1</id>
<title>오늘은</title>
<content>치킨이 먹고싶어라..!</content>
</article-form>
{
"id": 1,
"title": "오늘은",
"content": "치킨이 먹고싶어라..!"
}
위 링크는 무료로 가짜 데이터를 생성하고, 조회하고, 수정하고, 삭제할 수 있는 API를 제공하는 사이트다.

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

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

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

크롬 브라우저 우측 상단의 퍼즐 아이콘을 누른 뒤, 핀 아이콘을 클릭해 고정시키고, Talend API Tester의 아이콘을 클릭해서 웹에 접속한다.
Successful :
200(OK),201(Created)
Client Error :404(Not Found)
Server Error :500(Internal Server Error)

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

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

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

위 이미지는 Client 가 보낸 JSON 데이터의 HTTP 요청 데이터다. 응답 구조는 아래와 같다.
- Request Line :
POST /posts/ HTTP/1.1- Header :
Content-Length: ... Host: ...- Body :
{"":"", "":""}
여기서 Header는 편지 봉투로, Body는 편지 내용으로 이해할 수 있다.

위는 Server의 응답 데이터다. 응답 구조는 아래와 같다.
- Status Line :
HTTP/1.1 201- Header :
date: ... alt-svc: ...- Body :
{"":"", "":""}

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

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

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

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

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

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

마지막으로 삭제를 위해 Method를 DELETE 로 설정하고, URL에는 https://jsonplaceholder.typicode.com/posts/1 를 입력한 뒤 SEND 한다.
응답으로 200 코드를 받았고, 1번 게시글을 삭제했다.