웹서비스는 클라이언트와 서버간의 요청과 응답으로 이루어진다. 그런데, 클라이언트는 브라우저 뿐 아니라 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번 게시글을 삭제했다.