10.1 REST API와 JSON의 등장 배경
- 클라이언트는 웹 브라우저에만 있는게 아니라 스마트폰, 스마트워치, 태블릿, CCTV, 각종센서 등 모두를 뜻함.
- 그렇기에 서버는 웹 브라우저뿐만 아니라 어떤 기기가 와도 기기에 맞는 뷰 페이지를 응답해야 함
- 이럴 때 쓰는 방법이 바로 REST API를 사용하는 것
- REST API(Representational State Transfer API)란?
- 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식
- REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환
- 서버에서 보내는 응답이 특정 기기에 종속되지 않도록 모든 기기에서 통용될 수 있는 데이터를 반환
- 서버는 클라이언트의 요청에 대한 응답으로 화면이 아닌 데이터를 전송함. 사용하는 응답 데이터는 JSON(JavaScript Object Notation)
- API(Application Programming Interface)란?
- 애플리케이션을 간편히 사용할 수 있게 하는, 미리 정해진 일종의 약속으로, 사용자와 프로그램 간 상호작용을 도움.
- XML은 사용자 정의형 HTML 정도로 볼 수 있고, JSON은 자바 스크립트 방식을 차용한 객체 표용식 정도로 볼 수 있음
- JSON 데이터는 키(key)와 값(value)으로 구성된 정렬되지 않은 속성(property)의 집합
- 키는 문자열이므로 항상 큰따옴표("")로 감싸고, 값은 문자열인 경우에만 큰따옴표("")로 감쌈
10.2 REST API 동작 살펴보기
- 가짜 API를 사용해 무료로 각종 테스트를 진행할 수 있는 서비스 제공하는 사이트
JSONPlaceholder - Free Fake REST API
👋 Using React? Check out MistCSS, our new Open Source project! Learn more 🌬️
jsonplaceholder.typicode.com
- REST API는 모든 HTTP 메서드를 지원
- 데이터 조회를 요청할 때 GET은 method 속성의 기본값이므로 생략해서 보임
- PUT : 기존 데이터를 전부 새 내용으로 변경. 만약 기존 데이터가 없다면 새로 생성
- PATCH : 기존 데이터 중에서 일부만 새 내용으로 변경
Talend API Tester - Free Edition
Visually interact with REST, SOAP and HTTP APIs.
chromewebstore.google.com
- HTTP 요청을 보내고 돌아온 응답 확인 가능
- 응답이 200으로 오면 요청이 잘 처리됐다는 것을 의미하는 상태 코드
- 응답이 404면 요청한 페이지를 찾을 수 없다(not found)를 의미
- HTTP 상태 코드 표
- HTTP 메시지는 시작 라인(start line), 헤더(header), 빈 라인(blank line), 본문(body)로 구성
- 시작 라인 : HTTP 요청 또는 응답 내용이 있음. 시작 라인은 항상 한줄로 끝남
- 헤더 : HTTP 전송에 필요한 부가 정보(metadata)가 있음
- 빈 라인 : 헤더의 끝을 알리는 빈 줄로, 헤더가 모두 전송되었음을 알림
- 본문 : 실제 전송하는 데이터가 있음
- 요청 메시지의 시작 라인에는 요청의 종류(GET), URL 경로(/post/101), 사용하는 HTTP 버전(HTTP/1.1)이 있음
- 헤더에는 호스트 주소(jsonplaceholder.typicode.com, 어디에 보낼지에 대한 정보)가 있음
- 응답 메시지 시작 라인에는 HTTP 버전(HTTP/1.1)과 상태 코드(404)가 있음
- 헤더에는 응답을 보낸 날짜(date), 응답 데이터 형식(content-type) 등이 있음
- 본문에는 메시지에 실어 보내는 실제 데이터가 있음
'개인 공부 > BackEnd Study' 카테고리의 다른 글
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 15 - (0) | 2024.03.29 |
---|---|
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 14 - (0) | 2024.03.29 |
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 9 - (0) | 2024.03.28 |
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 8 - (0) | 2024.03.28 |
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 5 - (0) | 2024.03.27 |