
rest-API에는 단점이 꽤 많다.
rest-API는 엔드포인트가 post, get, put, delete, update 방식만해도 벌써 엔드포인트가 5개가 된다.
엔드포인트
API가 서버에서 리소스에 접근할 수 있도록 가능하게 하는 URL
필요한 데이터는 세 개인데 한 번에 한 번 밖에 요청하지 못해 세 번 요청을 해야하는 것
필요한 데이터는 하나인데 그 이상의 데이터를 결과로 주는 것
rest-API를 쓰면서 웹과 앱을 모두 개발한다고 하면
웹에서는 보여줄 화면이 커서 데이터도 많이 가져오는데 앱에서는 화면이 작으니 웹에서만큼 필요가 없다. 그래서 백엔드에 가기 전에 BFF(Backend For Frontend)를 거쳐서 백엔드에 필요한 데이터만 요청을 하게 된다. 이 번거로움을 graphQL이 문제점 해결했다. (graphql을 쓰면서 BFF를 쓸 수도 있다. 규모가 너무너무 크면!)
rest-API의 post 방식 사용rest-API의 GET 방식도 graphQL-API에서는 post!)한번 요청을 보낼 때 여러 요청을 묶어서 보낼 수 있다.
post 방식의 body에 내가 실행시킬 함수의 이름을 넣어 endpoint를 요청한다. 이미 만들어진 함수들 중에 내가 실행시킬 함수가 매칭되고 원하는 결과값을 받아올 수 있게 된다.
🚨 주의사항
항상POST방식이고 항상 요청이 성공(200)한다.
타입이 다 맞으면 일단 요청이 들어가고 그 안에서 잘못되더라도 성공을 띄워준다. 여러 요청 중 하나만 성공해도 200 코드를 반환한다. 이땐 실패한건 어떤 요청이고 에러메세지도 알려준다.
/graphql 한 개)open api는 대부분이 rest api)