1. RestfullAPI
: Restfull API는 A가 어떤 방식으로 요청하고, B가 어떤 방식으로 응답할지 지정해 놓은 다양한 형식들 중 하나입니다.
(1) Create
: 정보를 생성해서 넣는 것
(2) Read
: 조회, 목록 또는 특정 정보를 조회하는 것
(3) Update
: 정보를 업데이트하는 것
(4) Delete
: 어떤 정보를 삭제하는 것
EX) URI 사용 예시
| POST | https://api.example.com/v1/infos | 새로운 정보 추가 |
|---|---|---|
| GET | https://api.example.com/v1/infos | 목록 받아오기 |
| GET | https://api.example.com/v1/infos/1 | 1인 정보 받아오기 |
| PUT | https://api.example.com/v1/infos/13 | 13인 정보 수정 |
| PATCH | https://api.example.com/v1/infos/10 | 10 인 정보 변경 |
| DELETE | https://api.example.com/v1/info/50 | 50인 정보 삭제 |
=> HTTP는 RestFull API의 필수 요소는 아니지만, Restfull API의 조건을 구현하기 용이하기에 현업에서 HTTP가 주로 사용된다.

⇒ 각 메서드의 색상, 속성, URI를 통해 개발자들이 한 눈에 봐도 알아볼 수 있다.
[
{
"id":1,
"code": "WD0003",
"parentCode": "WITHDRAWAL",
"name": "제공된 정보가 기대에 미치지 못했어요",
"description": "제공된 정보가 기대에 미치지 못했어요",
"orderNumber": 0,
"tempVal1": "",
"tempVal2": "",
"tempVal3": ""
},
{
"id":2,
"code": "WD0001",
"parentCode": "WITHDRAWAL",
"name": "필요한 정보를 다 얻었어요",
"description": "필요한 정보를 다 얻었어요",
"orderNumber": 0,
"tempVal1": "",
"tempVal2": "",
"tempVal3": ""
},
]
장점
단점
2. GraphQL (질의를 하기 위한 언어)
: GraphQL은 애플리케이션 프로그래밍 인터페이스를 위한 쿼리 언어이자 서버측 런타임으로 클라이언트에게 요청한 만큼의 데이터를 제공하는데 우선 순위를 두며,API를 더욱 빠르고 유연하며 개발자 친화적으로 만들기 위해 설계되었다.
: 일반적으로 POST 를 사용하며 ,하나의 엔드포인트를 사용한다.
(1) 데이터의 조회
: query
→ POST 메서드로 위와같이 요청을 보낸다.
→ query에서 요청한 데이터만을(클라이언트가 필요로 하는)정보만 받아와서
RestAPI의 오버페칭을 방지할 수 있다.
→ 하나의 요청으로는 모든 데이터를 받아오지 못하는 underfetching 문제가 발생하기도 한다.
( 세부적으로 요청을 하기에 , 여러 요청을 필요로 하게 되는 경우가 생김 )
(2) 데이터의 추가,수정,삭제
: mutation 사용
→ 좌측 사진과 같이 요청을 하면, 우측의 데이터가 생성,수정,삭제가 된다.

(3) 구독 (subscription)
: 구독을 신청하여, 해당 데이터에 대한 변경사항 알림을 받을 수 있다.
장점
단점
참고
https://luvris2.tistory.com/530
https://www.redhat.com/ko/topics/api/what-is-graphql