GraphQL은 API서버에서 엄격하게 정의된 endpoint들에 요청하는 대신 한 번의 요청으로 정확히 가져오고 싶은 데이터를 가져올 수 있게 쿼리를 보낼 수 있다.
GraphQL은 Backend에서의 많은 로직을 Frontend로 분산할 수 있다.
REST API는 URL, Method 등을 조합하기 때문에 다양한 Endpoint가 존재한다.
반면, gql(GraphQL)은 하나의 Endpoint가 존재한다.
또 gql API에서는 불러오는 데이터의 종류를 쿼리 조합을 통해서 결정한다.
REST API에서는 각 Endpoint마다 데이터 베이스 SQL 쿼리가 달라지는 반면 gql API는 gql 스키마의 타입마다 데이터베이스 SQL 쿼리가 달라진다.
type Character {
name: String!
appearsIn: [Episode!]!
}
type Query {
users: [User]
user(id: ID): User
limits: [Limit]
limit(UserId: ID): Limit
paymentsByUser(userId: ID): [Payment]
}
type User {
id: ID!
name: String!
sex: SEX!
birthDay: String!
phoneNumber: String!
}
type Limit {
id: ID!
UserId: ID
max: Int!
amount: Int
user: User
}
type Payment {
id: ID!
limit: Limit!
user: User!
pg: PaymentGateway!
productName: String!
amount: Int!
ref: String
createdAt: String!
updatedAt: String!
}
https://hwasurr.io/api/rest-graphql-differences/
https://tech.kakao.com/2019/08/01/graphql-basic/
https://d2.naver.com/helloworld/4245995