Rest-API vs Graphql-API
API에는 크게 rest-API, graphql-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 |
'API, Database' 카테고리의 다른 글
[GraphQL] Apollo-Client - refetchQueries (0) | 2022.01.24 |
---|