REST API와 JSON

김채원·2025년 2월 5일

⭐️ API (Application Programming Interface)

API는 개발을 위해 미리 정한 약속으로, 사용자와 프로그램 간의 상호 작용을 돕는다. 예를 들어 자판기에서는 자판기 버튼이 하나의 API가 된다. 사이다 버튼을 누르면 사이다가, 콜라 버튼을 누르면 콜라가 반환되는 이유는 각 버튼에 따라 반환되는 음료를 미리 약속했기 때문이다.
여기서 다루는 REST API는 클라이언트와 서버 사이의 상호 작용, 즉 HTTP 요청에 따른 JSON 응답에 대한 약속이다.


📝 REST API (Representational State Transfer API)

서버는 각 클라이언트의 요청에 해당하는 뷰 페이지(view1, view2 등)를 제공하여 응답한다.

REST API는 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식이다. REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. 서버에서 보내는 응답이 특정 기기에 종속되지 않는, 모든 기기에서 통용될 수 있는 데이터를 반환한다.


📌 REST API의 동작


서버는 클라이언트의 요청에 대한 화면(View)가 아닌 데이터를 전송한다. 이 때 사용하는 응답 데이터는 JSON(Java Script Object Notation)이다.


📌 JSON 데이터

JSON 데이터는 키(key)와 값(value)으로 구성된 정렬되지 않은 속성의 집합이다. 키는 문자열이므로 항상 큰따옴표 "" 로 감싸고 값은 문자열인 경우에만 큰따옴표 "" 로 감싼다.

ex. 3개의 속성을 가진 강아지를 JSON 데이터로 표현하기

{
	"name": "초코",
    "breeds": "시츄",
    "age": 3 
}

REST API의 응답 표준으로 사용하는 JSON은 키(key)와 값(value)의 쌍으로 된 속성으로 데이터를 표현한다. 또 다른 JSON 데이터나 배열을 넣을 수도 있다.


참고 ㅣ XML vs JSON

  • XML : 사용자 정의형 HTML (과거에 많이 사용)
  • JSON : 자바스크립트 방식을 차용한 객체 표현식 (현재에 주로 사용)

📝 REST API 동작 살펴보기


  • GET 요청은 method 속성의 기본값이므로 생략 가능하다.

  • PUT vs PATCH

    PUT 은 기존 데이터를 전부 새로운 내용으로 변경하고 만약 기존 데이터가 없다면 새로 생성한다. 반면 PATCH 는 기존 데이터 중에서 일부만 새로운 내용으로 변경한다.

📌 HTTP 상태 코드

HTTP 상태코드는 클라이언트가 보낸 요청이 성공했는지 실패했는지 알려주는 코드이다. 코드는 100번대부터 500번대까지 5개의 그룹으로 나뉘어져 있다.


📌 HTTP 메세지

HTTP 요청 메세지HTTP 응답 메세지

🔷 구성요소

  • 시작 라인(start line) : 한 줄 안에 HTTP 요청 or 응답 내용이 있다.
  • 헤더(header) : HTTP 전송에 필요한 부가 정보(metadata)가 있다.
  • 빈 라인(blank line) : 헤더의 끝을 알리는 빈 줄로, 헤더가 모두 전송되었음을 알린다.
  • 본문(body) : 실제 전송하는 데이터가 있다.

⭐️정리⭐️

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

0개의 댓글