클라이언트에는 웹 브라우저 뿐만 아니라, 스마트폰, 태블릿 등이 있음.서버는 이러한 모든 클라이언트의 요청에 응답을 해야됨.REST API사용.REST(Representational State Transfer) API서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있는 설계 방식.REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환함.서버에서 보내는 응답은 특정 기기에 종속되지 않도록 모든 기기에서 통용될 수 있는 데이터를 반환함.서버는 클라이언트의 요청에 대한 응답으로 화면(view)이 아닌 데이터(data)를 전송함.응답 데이터는 JSON(JavaScript Object Notation)임.과거에는 XML을 많이 사용했지만, 최근에는 JSON으로 통일되는 추세.API(Application Programming Interface)API란 애플리케이션을 간편히 사용할 수 있게 하는, 미리 정해진 약속으로, 사용자와 프로그램 간 상호 작용을 도움.REST API는 클라이언트와 서버사이의 상호작용, 즉 HTTP 요청에 따른 JSON 응답에 대한 약속임.XML은 사용자 정의형 HTML.JSON은 JavaScript방식을 차용한 객체 표현식.XML : Extensible Markup Language
<article-form>
<id>1</id>
<title>제목입니다.</title>
<content>내용입니다.</content>
</article-form>
JSON : JavaScript Object Notation
{
"id": 1,
"title": "제목입니다.",
"content": "내용입니다."
}
JSON 데이터는 키(key)와 값(value)으로 구성된 정렬되지 않은 속성(property)의 집합임.키(key)는 문자열이므로 항상 큰따옴표("")로 감싸고, 값(value)은 문자열인 경우에는 큰따옴표("")로 감싸주면 됨.{JSON} Placeholder 사이트(https://jsonplaceholder.typicode.com).가짜(fake) API를 사용해서 무료로 각종 테스트를 해볼 수 있는 서비스를 제공함.

HTTP 요청 코드 -> JSON 데이터 응답.
HTTP 요청을 보내고 응답 결과를 확인할 수 있음.자원(resources)들.
REST API는 모든 HTTP 메서드를 지원함.guide 클릭.
URL 경로가 https://.../post/1을 보니 1번 게시글을 조회하는 요청임.출력 결과(output)를 보면 1번 게시글의 id, title, body, userId가 응답 됐음.조회할 때는 method의 속성 값으로 GET을 써야하는데 GET은 method 속성의 기본값(default)이라 이 경우 생략해도 됨.
GET 요청이라서 method 속성을 생략.URL경로는 https://.../posts.
데이터 생성 요청이므로 method의 속성 값은 POST.URL경로는 https://.../posts.body 부분을 보면 JSON 데이터로 새 게시글의 title(제목), body(내용), userId(사용자 아이디) 값도 같이 보낸 것을 확인할 수 있음.PUT Vs PATCHPUT : 기존 데이터를 전부 새로운 데이터로 변경함. 기존 데이터가 없다면 새로 생성함.PATCH : 기존 데이터 중에서 일부만 새로운 데이터로 변경.| PUT | PATCH |
|---|---|
![]() | ![]() |
데이터 수정 요청이므로 method의 속성 값은 PUT과 PATCH를 사용했음.URL 경로는 https://../posts/1이므로 1번 게시글 수정 요청임을 알 수 있음.PUT 방식 : 1번 데이터의 속성을 모두 수정 요청했음.PATCH 방식 : 1번 데이터의 title만 수정 요청 했음.
method의 속성값으로 DELETE사용.URL은 https://.../delete/1이므로 1번 게시글 삭제.Talend API Tester을 이요해서 HTTP 요청을 보내고 돌아오는 응답을 확인할 수 있음.
응답(Response)이 200으로 왔음.200은 요청이 잘 처리됐다는 것을 의미하는 상태 코드임.
상태 코드가 200이 응답으로 왔음.
404 에러가 떴음.상태 코드 404(not found)는 요청한 페이지를 찾을 수 없다는 의미.
데이터 생성을 요청.
201이 왔음.상태코드 201은 데이터가 잘 생성됐음을 의미함.body부분을 보면 새로 생성된 데이터가 JSON 형식으로 잘 반환되었음.
하단 HTTP탭을 확인해 보면 요청 메시지의 시작 라인과 헤더에는 각종 정보가 있고, 본문에는 새로 생성할 데이터가 있음.
응답 메시지의 시작 라인과 헤더에는 응답 정보가 있고, 본문에는 생성 데이터가 실려서 반환되었음.
id는 자동으로 101번이 매겨졌음.
응답으로 500이 왔음.상태 코드 500은 서버 내부에서 에러가 발생했다는 것을 의미.
응답으로 200.
응답으로 200.HTTP 상태 코드는 클라이언트가 보낸 요청이 성공했는 지 , 실패했는 지 알려주는 코드임.| 상태 코드 | 설명 |
|---|---|
| 1XX(정보) | 요청이 수신되어 처리 중. |
| 2XX(성공) | 요청이 정상적으로 처리되었음. |
| 3XX(리다이렉션 메시지) | 요청을 완료하려면 추가 행동이 필요함. |
| 4XX(클라이언트 요청 오류) | 클라이언트의 요청이 잘못되어 서버가 요청을 수행할 수 없음. |
| 5XX(서버 응답 오류) | 서버 내부에 에러가 발생해 클라이언트 요청에 대해 적절히 수행하지 못했음. |
HTTP 메시지에 실려서 전송됨.HTTP 요청 메시지에, 응답할 때는 HTTP 응답 메시지에 내용이 실림.HTTP 메시지는 시작 라인(start line), 헤더(header), 빈 라인(blank line), 본문(body)으로 구성됨.요청 or 응답 내용이 있음. 항상 한 줄로 끝남.부가 정보(metadata)가 있음.헤더의 끝을 알리는 빈 줄. 헤더가 모두 전송되었음을 알림.전송하는 데이터가 있음.
요청 메시지의 시작 라인에는 요청의 종류(GET), , URL 경로(/posts/2), 사용하는 HTTP 버전(HTTP/1.1)이 있음.
헤더에는 호스트 주소(jsonplaceholder.typicode.com, 어디로 보낼지에 대한 정보)가 있음.
그 아래에는 응답 메시지.
시작라인에는 HTTP 버전(HTTP/1.1)과 상태코드(200)이 있음.헤더에는 응답을 보낸 날짜(date), 응답 데이터 형식(content-type) 등이 있음.
본문에는 메시지에 실어 보내는 실제 데이터가 있음.