API, Database

[API] Rest-API vs Graphql-API

쭈꾸미 2022. 1. 12. 18:20

Rest-API vs Graphql-API


API에는 크게 rest-APIgraphql-API 2종류가 있다.

 

  Rest-API GraphQL-API
API 함수 이름 주소처럼 생긴 이름

http://naver.com/board/1
http://naver.com/profile/철수
일반 함수와 같은 이름

board(1)
profile("철수")
응답 결과물 일부 데이터만 필요한 경우에도 전체 데이터를 받아야만 하는 구조 원하는 일부 데이터만 골라 받을 수 있음
요청담당자 axios apollo-client

GraphQl은 효율적인 데이터 통신을 위해 페이스북 개발팀에서 만들었으며, facebook, airbnb, github 등 많은 사이트에서 사용중인 통신 방법이다. 하지만 국내에서는 아직 GraphQL이 많이 사용되지 않는다. 공공 API도 대부분 Rest-API로 만들어져있다.

 

CRUD method의 차이


Rest-API 와 GraphQL-API는 CRUD에도 차이가 있다.

 

  Rest API
axios
GraphQL API
apollo-client
생성 Create POST MUTATION
(변경하는 작업)
수정 Update PUT
삭제 Delete DELETE
조회 Read GET QUERY
(조회하는 작업)

또한 실제 사용방법에도 차이가 있다.

 

▼ axios (Rest-API)

import axios from 'axios'

const result = axios.post( API이름입력 )
const result = axios.put( API이름입력 )
const result = axios.delete( API이름입력 )
const result = axios.get( API이름입력 )

▼ apollo-client (GraphQL-API)

import { useMutation, useQuery } from '@apollo/client'

const result = useMutation( API이름입력 )
const result = useQuery( API이름입력 )

 

API Docs & 연습도구


API는 백엔드 개발자가 어떻게 코딩하느냐에 따라 무궁무진하게 달라지기 때문에 설명서가 필요하다, 이러한 설명서를 docs라고 하며, API docs와 연습도구 역시 API 종류에 따라 갈린다.

 

  Rest-API GraphQL-API
API 연습 포스트맨 Postman 플레이그라운드 Playground
API Docs 스웨거 Swagger