본문 바로가기
IT || 개발공부/Spring

[Spring] API와 REST API

by saesong 2023. 10. 27.

🔶 API란? 그리고 REST API란?

 

학원에서 배울 때도, 그리고 직장에서까지도 API라는 것에 대해 명확히 개념 정의를 하지 못하였다. 항상 두루뭉술하게만 
알고 있었는데 예전에 유튜브로 개발 관련 강의를 시청 중, 'API = 메뉴판' 라는 설명을 들은 적이 있다. 우리가 식당에 가면 메뉴판에 다양한 메뉴들이 있고, 그 메뉴 중 먹고 싶은 음식을 주문(≒호출) 하는 것과 같은 기능을 API가 한다는 것이다.

그렇다면 API에 대해서 사전적 정의와 함께 좀더 파헤쳐보자.


1. API란?

Application Programming Interface로서, 응용프로그램에서 사용가능하도록 운영체제나 프로그래밍 언어에서 제공하는 기능을 제어할 수 있게 해주는 인터페이스를 말한다. 어플리케이션 간의 지정된 형식으로 요청과 응답이 가능하도록 연결하는 것이다.

쉽게 말해, 한 프로그램에서 다른프로그램으로 데이터를 주고받기 위한 방법이다.

여기서 방법은, 'code' 이다. 스마트폰을 예로 들자면, 스마트폰 내부가 어떻게 동작하는지 몰라도, 우리는 직관적인 UI 및 버튼을 통해 쉽게 사용이 가능하다. 사용자는 API는 우리가 실생활에서 자주 사용하고 있다. 웹 브라우저에서 주소창에 주소를 검색하는 것도 API 호출이라고 볼 수 있다. 또한, 웹 상의 특정 이미지(ex: 배너)를 클릭하면 특정 API가 요청되는 것, 날씨 API, 실시간 지도(교통정보) API, URL 축약 API, 번역 API 등 다양한 예시도 특정 웹사이트 및 어플리케이션이 제공하는 API를 내 서비스에 적용하는 것 이라 볼 수 있다. 


2. REST API란?

인터넷 식별자 URI(Uniform Resource Identifier)와 HTTP를 기반으로 하고, 브라우저 간 호환성이 좋은 JSON 형식을 주로 사용한다.

다른 컴퓨터나 프로그램과의 소통을 쉽게 할 수 있어서 많은 개발자들이 사용하고 있다.

여기서 REST란, 'Representational State Transfer' 의 약자로서
문서, 그림 데이터 등 자원을 '이름'으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.

또한, HTTP method를 활용해서 해당 자원에 대한 CRUD를 적용하는 것을 의미한다.

REST API에서는 다양한 HTTP method 중에서도 GET, POST, PUT DELETE (+PATCH)를 사용한다.

 

REST의 API 특성은

■ HTTP method 중 GET, POST, PUT DELETE (+PATCH)를 사용한다.

■ ⭐각 요청이 어떤 정보나 동작을 위한 것인지 그 자체만으로 추론이 가능하다.
ex) GET => /api/reviews
DELETE =>/api/reviews/{id}

■ HTTP method를 활용해서 해당 자원에 대한 CRUD를 적용하는 것을 의미한다.

 

REST API를 테스트할 수 있는 프로그램 및 사이트로서 다음 예시를 소개하고자 한다.

  • swagger-ui : REST API를 문서화 하는 툴로서 프론트엔드와 벡엔드가 서로 협업할 때 주로 사용
  • Restlet: GET/POST 방식으로 특정 웹 서비스에서의 REST API를 테스트 가능한 구글 크롬의 확장 프로그램
  • Jsonlit: 서버로부터 전달 받은, 혹은 서버에서 생성한 JSON 데이터의 양식이 정확한지 알려주고,
    그 형태를 다듬어 개발자에게 보여주는 웹 사이트

정리하자면, HTTP요청시 URI에 대한 method를 사용할지에 대한, 개발자 간의 약속이라고 볼 수 있다.


 

참고: 코딩애플, 코드온, https://blog.naver.com/PostView.naver?blogId=ndb796&logNo=221372271434

댓글