새로 입사한 회사에서 api query에 graphql을 사용하는데 기존에 주로 사용하던 REST api와는 차이가 있어서 정리하려고 합니다.
query가 REST에서 GET method에 해당한다면 mutation은 수정(POST,PUT, PATCH)에 해당한다.
# query문
mutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) {
createReview(episode: $ep, review: $review) {
stars
commentary
}
}
# 변수
{
"ep": "JEDI",
"review": {
"stars": 5,
"commentary": "This is a great movie!"
}
}
# response
{
"data": {
"createReview": {
"stars": 5,
"commentary": "This is a great movie!"
}
}
}
코드가 길어질 때 필드셋의 일부를 미리 정의하여 재사용이 가능하도록 하는 단위.
{
leftComparison: hero(episode: EMPIRE) {
...comparisonFields
}
rightComparison: hero(episode: JEDI) {
...comparisonFields
}
}
fragment comparisonFields on Character {
name
appearsIn
friends {
name
}
}