GraphQL

hong_hong·2022년 6월 6일
0

GraphQL 사용해보기

  • 정보 받아오기
query {
  teams {
    id
    manager
    office
    extension_number
    mascot
    cleaning_duty
    project
  }
}
  • 필요한 정보만 받아오기
query {
  teams {
    manager
    office
  }
}
query {
  team(id: 1) {
    manager
    office
  }
}
  • 팀 정보와 해당 팀 멤버들의 정보들 받아오기
query {
  team(id: 1) {
    manager
    office
    members {
      first_name
      last_name
    }
  }
}
  • 팀 목록과 역할 목록 받아오기
query {
  teams {
    manager
    office
    mascot
  }
  roles {
    id
    requirement
  }
}
  • 새 팀 추가
mutation {
  postTeam (input: {
    manager: "John Smith"
    office: "104B"
    extension_number: "#9982"
    mascot: "Dragon"
    cleaning_duty: "Monday"
    project: "Lordaeron"
  }) {
    manager
    office
    extension_number
    mascot
    cleaning_duty
    project
  }
}
  • 특정 번호의 팀 정보 수정
mutation {
  editTeam(id: 2, input: {
    manager: "Maruchi Han"
    office: "105A"
    extension_number: "2315"
    mascot: "Direwolf"
    cleaning_duty: "Wednesday"
    project: "Haemosu"
  }) {
    id,
    manager,
    office,
    extension_number,
    mascot,
    cleaning_duty,
    project
  }
}
  • 특정 번호의 팀 삭제
mutation {
  deleteTeam(id: 3) {
    id,
    manager,
    office,
    extension_number,
    mascot,
    cleaning_duty,
    project
  }
}

장점

  • 필요한 정보들만 선택하여 받아올 수 있다.
    - overfetching 문제 해결
    - 데이터 전송량 감소

  • 여러 계층의 정보들을 한 번에 받아올 수 있다.
    - underfetching 문제 해결
    - 요청 횟수 감소

  • 하나의 endpoint에서 모든 요청을 처리
    - 하나의 URI에서 POST로 모든 요청 가능

0개의 댓글