GraphQL(GQL)은 페이스북에서 만든 것으로 Structed Query Language(SQL)과 같은 쿼리 언어다. 우선 GQL과 SQL은 언어적 구조 차이가 매우 크다. 또한 실제로 쓰이는 방식의 차이도 크다.
SELECT plot_id, species_id, sex, weight, ROUND(weight / 1000.0, 2) FROM surveys;
{
hero {
name
friends {
name
}
}
}
REST API는 URL, METHOD등을 조합하기 때문에 다양한 Endpoint가 존재한다. 반면, GQL은 단 하나의 Endpoint가 존재한다. 또한, GQL API에서는 불러오는 데이터의 종류를 쿼리 조합을 통해서 결정한다. 예를 들면, REST API에서는 각 Endpoint마다 데이터베이스 SQL 쿼리가 달라지는 반면, GQL API는 GQL 스키마의 타입마다 데이터베이스 SQL 쿼리가 달라진다.
쿼리와 뮤테이션 그리고 응답 내용의 구조는 직관적이다. 요청하는 쿼리문의 구조와 응답 내용의 구조는 거의 일치한다.
type Character {
name: String!
appearsIn: [Episode!]!
}