API는 개발을 위해 미리 정한 약속으로, 사용자와 프로그램 간의 상호 작용을 돕는다. 예를 들어 자판기에서는 자판기 버튼이 하나의 API가 된다. 사이다 버튼을 누르면 사이다가, 콜라 버튼을 누르면 콜라가 반환되는 이유는 각 버튼에 따라 반환되는 음료를 미리 약속했기 때문이다.
여기서 다루는 REST API는 클라이언트와 서버 사이의 상호 작용, 즉 HTTP 요청에 따른 JSON 응답에 대한 약속이다.
서버는 각 클라이언트의 요청에 해당하는 뷰 페이지(
view1,view2등)를 제공하여 응답한다.
REST API는 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식이다. REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. 서버에서 보내는 응답이 특정 기기에 종속되지 않는, 모든 기기에서 통용될 수 있는 데이터를 반환한다.

서버는 클라이언트의 요청에 대한 화면(View)가 아닌 데이터를 전송한다. 이 때 사용하는 응답 데이터는 JSON(Java Script Object Notation)이다.
JSON 데이터는 키(key)와 값(value)으로 구성된 정렬되지 않은 속성의 집합이다. 키는 문자열이므로 항상 큰따옴표 "" 로 감싸고 값은 문자열인 경우에만 큰따옴표 "" 로 감싼다.
ex. 3개의 속성을 가진 강아지를 JSON 데이터로 표현하기
{ "name": "초코", "breeds": "시츄", "age": 3 }
REST API의 응답 표준으로 사용하는 JSON은 키(key)와 값(value)의 쌍으로 된 속성으로 데이터를 표현한다. 또 다른 JSON 데이터나 배열을 넣을 수도 있다.

참고 ㅣ XML vs JSON
- XML : 사용자 정의형 HTML (과거에 많이 사용)
- JSON : 자바스크립트 방식을 차용한 객체 표현식 (현재에 주로 사용)
GET 요청은 method 속성의 기본값이므로 생략 가능하다.
PUT vs PATCH
PUT 은 기존 데이터를 전부 새로운 내용으로 변경하고 만약 기존 데이터가 없다면 새로 생성한다. 반면 PATCH 는 기존 데이터 중에서 일부만 새로운 내용으로 변경한다.HTTP 상태코드는 클라이언트가 보낸 요청이 성공했는지 실패했는지 알려주는 코드이다. 코드는 100번대부터 500번대까지 5개의 그룹으로 나뉘어져 있다.

| HTTP 요청 메세지 | HTTP 응답 메세지 |
|---|---|
![]() | ![]() |
⭐️정리⭐️
- REST : HTTP URL로 서버의 자원(resource)을 명시하고 HTTP 메서드 (
GET,POST,PUT/PATCH,DELETE) 로 해당 자원에 대해 CRUD (생성,조회,수정,삭제) 하는 것- API : 클라이언트가 서버의 자원을 요청할 수 있도록 서버에서 제공하는 인터페이스
- REST API : REST 기반으로 API를 구현한 것이다.