フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

GraphQLを調べる②

はじめに

エイリアス

{
  user1: user(login: "TsuyoshiMorita-freelance"){
    bio
    login
  }
  user2: user(login: "TsuyoshiMorita-freelance"){
    bio
    login
  }
}

フラグメント(Fragments)

{
  user1: user(login: "TsuyoshiMorita-freelance"){
    ...commonFields
  }
  user2: user(login: "TsuyoshiMorita-freelance"){
    ...commonFields
  }
}

fragment commonFields on User {
  bio
  login
  avatarUrl
  bioHTML
  company
  companyHTML
}

操作名(Operation Name)

query getUser1{
  user1: user(login: "TsuyoshiMorita-freelance") {
    name
  }
}

query getUser2{
  user1: user(login: "TsuyoshiMorita-freelance") {
    avatarUrl
  }
}

変数

query ($login: String!){
  user1: user(login: $login) {
    name
    avatarUrl
  }
}

{
  "login": "TsuyoshiMorita-freelance"
}

f:id:PX-WING:20200821092337p:plain

データの更新

  • SQLでいう、Insert,Update,Deleteの操作を指す
  • 下記の例はgithubのスターを登録及び外す処理のサンプル
mutation addStar {
  addStar(input: {starrableId: "MDEwOlJlcG9zaXRvcnkxMjM5NTA3MjU="}) {
    starrable {
      viewerHasStarred
    }
  }
}

mutation removeStar {
  removeStar(input: {starrableId: "MDEwOlJlcG9zaXRvcnkxMjM5NTA3MjU="}) {
    starrable {
      viewerHasStarred
    }
  }
}