API
란 클라이언트가 HTTP 요청을 서버에 보냈을 때 실행되는 백엔드의 함수이다.
클라이언트가 게시물 데이터 저장, 게시물 데이터 수정, 프로필 데이터 저장, 프로필 데이터 수정 등의 요청을 서버에 보내면, 서버는 이러한 각각의 요청에 해당하는 담당 함수로 요청을 처리합니다. 이런 각각의 기능을 API
라고 한다.
API
는 기능, 즉 함수이므로 인자
를 전달받고 데이터를 return
한다.
API
에 전달되는 인자이다.API
가 응답하는 데이터이다.클라이언트의 요청과 서버의 응답은 HTTP
를 사용하므로 HTTP 메시지
에 데이터를 실어 보낸다.
API의 종류에는 크게 REST API
와 GraphQL API
두 가지가 있다.
REST API(RESTful API라고도 함)
는 REST 아키텍쳐 스타일의 제약을 준수하는 API이다.
REST API
를 사용하면 RESTful한 웹 서비스와 상호 작용할 수 있다.
REST API는 API 이름
이 마치 웹페이지의 주소처럼 생겼다.
REST API를 사용하는 경우 REST API를 사용한 요청에 서버가 응답해 백엔드 API가 응답 결과로 돌려주는 모든 데이터를 받아야 한다.
API를 위한 쿼리 언어
GraphQL은 API를 위한 쿼리 언어이며 기존 데이터로 쿼리를 수행하기 위한 런타임이다. GraphQL은 API에 있는 데이터에 대한 완벽하고 쉬운 설명을 제공하고, 클라이언트에게 필요한 것을 정확하게 요청할 수 있는 기능을 제공하며 시간이 지남에 따라 API를 쉽게 진화시키고 강력한 개발자 도구를 지원한다.
GraphQL API
는 GraphQL
이라는 API 쿼리 언어를 사용하는 API라고 이해했다.
API 이름
이 일반적인 함수와 같다.board(1)
- 1번 게시글 조회하기profile("철수")
- 철수 프로필 조회하기API
는 CRUD
, 즉Create
, Read
, Update
, Delete
방식으로 구분할 수 있다.
Create
- 새로운 데이터를 생성하는 APIRead
- 기존 데이터를 조회하는 APIUpdate
- 기존 데이터를 수정하는 APIDelete
- 기존 데이터를 삭제하는 APICRUD
는 REST API
와 GraphQL API
방식에 따라 다르게 사용된다.
REST API
방식은 CRUD
마다 모두 다른 메서드를 사용한다.GraphQL API
방식은 MUTATION
과 QUERY
만 사용한다.MUTATION
- 데이터를 조작하는 Create
, Update
, Delete
에서만 사용QUERY
- 데이터를 조회하는 Read
에서만 사용REST API
와 GraphQL API
의 차이점을 아래와 같이 정리할 수 있다.
REST API
의 API 이름은 웹페이지의 주소 같지만, GraphQL API
의 API 이름은 일반적인 함수 같다.REST API
는 백엔드 API가 돌려주는 모든 데이터를 돌려 받아야 하지만, GraphQL API
는 필요한 데이터만 골라 받을 수 있다.REST API
와 GraphQL API
의 CRUD
방식이 다르다.