하나의 소프트웨어가 다른 소프트웨어의 기능이나 데이터를 사용할 수 있도록 해주며, 이로인해 다른 시스템에서도 사용이 가능하다.
(1) API는 무슨 기능이 있을까?
데이터를 교환하거나 통합할 수 있다.
앱의 기능을 다른 앱에서 사용할 수 있게 해준다.
데이터 공유 시 보안, 접근 권한을 관리할 수 있다.
(2) REST API란?
REST 기반으로 설계된 API를 말한다.
REST API는 HTTP 메소드(GET, POST, PUT, DELETE 등)를 사용해서 리소스에 대한 작업을 수행한다.
2) REST
REST는 소프트웨어 아키텍쳐 스타일을 말한다.
리소스를 이름으로 구분하고 해당 리소스 상태를 주고받는 것을 말한다.
HTTP URI로 리소스를 명시하고 HTTP 메소드를 통해 리소스에 대한 CRUD를 적용한다.
(1) REST는 무슨 목적으로 만들어졌는가?
웹 상의 리소스를 효율적으로 관리하고 전달하기 위해 설계되었다.
(2) REST에서 사용되는 주요 개념
리소스 (Resource) : 웹 상에서 각각의 고유한 URI로 식별되는 모든 데이터 및 서비스
상태 전달 (State Transfer) : 클라이언트가 서버에 요청을 보내면 서버는 요청에 대한 리소스의 상태를 표현하는 데이터를 응답으로 보내게 된다.
표현 (representation) : 리소스의 상태를 JSON, XML 등의 형식으로 표현해서 클라이언트에 전달된다.
(3) REST 원칙은 무엇인가?
무상태성 (Stateless) : 각각의 요청이 독립적이며 서버는 이전 상태를 저장하지 않는다.
캐시 가능 (Cacheable) : 클라이언트는 서버로부터 받은 응답을 캐시해서 재사용 가능하다.
통신 방식 (Uniform Interface) : API의 인터페이스가 표준화되어 있고, 주로 HTTP 메소드(GET, POST, PUT, DELETE 등)를 이용해서 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행한다.
클라이언트-서버 구조(Client-Server) : 사용자 인터페이스와 데이터 저장소가 분리되어서 각각이 독립적이다.
계층화 (Layered System) : 클라이언트는 자신이 직접 연결된 서버인지, 중간에 다른 계층이 있는지 알 수 없다.
코드 온 디맨드 (Code on Demand) : 서버가 클라이언트에 실행 가능한 코드를 전송할 수 있다.
3) RESTful API
RESTful이란 REST 아키텍쳐 스타일을 따르고 있다는 것을 말한다.
REST 원칙을 기반으로 클라이언트-서버 간 무상태 통신, 캐싱 가능한 응답 등으로 구현되어 있다. 예를 들어, GET /bags 요청은 서버에서 가방들에 대한 목록을 조회하고 이후에 같은 요청에 대해 캐시된 데이터를 사용 가능하다. 또한, 각 리소스는 고유한 URI를 가지고 표준 HTTP 메소드를 사용해서 CRUD 작업을 수행한다.