GraphQL學(xué)習(xí)記錄 查詢 二

測(cè)試工具 GraphiQL 。 測(cè)試地址:http://snowtooth.moonhighway.com


1. 聯(lián)合類型

返回的 列表 不止有一種類型。(on 是指定選擇條件, ... 展開(kāi))

query schedule {
  agenda {
    ...on Workout {
      name
      reps
    }
    ...on StudyGroup {
      name
      subject
      students
    }
  }
}

返回結(jié)果如下

{
  "data": {
    "agenda" : [
      {
          "name": "Comp Sci",
          "subject": "Computer Secience",
          "student": 12
      },
      {
          "name": "Cardio",
          "reps": 100
      },
      ......
    ]
  }
}


2. 接口

單個(gè)字段想要返回多個(gè)對(duì)象類型的時(shí)候使用

其中 start 和 end 為 接口中的屬性
query schedule {
  agenda {
    name
    start
    end
  }
}


3. 變更 mutation

新增 修改 刪除 都是變更。

新建一條數(shù)據(jù),一首歌,傳入了標(biāo)題 是否為封面 以及演員的名字 三個(gè)屬性,然后要求新建數(shù)據(jù)成功之后給我嗎返回 id 以及其中的兩個(gè)屬性。(可以隨意定義返回的屬性)

mutation createSong {
  addSong (title: "謝謝你", numberOne: true,performerName:"TLC") {
    id
    title
    numberOne
  }
}

返回?cái)?shù)據(jù)如下

{
  "data": {
     "addSong": {
        "id": "7dh4kj8ui09sh487k9o1je7jl",
        "title": "謝謝你",
        "numberOne": true
      }
  }
}

修改一條數(shù)據(jù)

mutation changTitle {
  setSongTitle(id: "7dh4kj8ui09sh487k9o1je7jl", title: "不謝你了") {
    id
    title
  }
}


4. 使用查詢變量

就是用把死數(shù)據(jù)換成變量
用哪 $+變量名 來(lái)表示變量,也可以把performerName 命名為by。不過(guò)最好是一一對(duì)應(yīng)。

mutation createSong($title: String!, $numberOne: Booblean, $by: String!) {
  addSong (title: $title, numberOne:  $numberOne, performerName: $by") {
    id
    title
    numberOne
  }
}


5. 訂閱 subscription

客戶端監(jiān)聽(tīng)從服務(wù)器實(shí)時(shí)返回的數(shù)據(jù)。發(fā)送一個(gè)修改數(shù)據(jù)的GraphQL,訂閱就能收到返回的數(shù)據(jù)。

subscription {
  liftStatusChange {
    name
    capacity
    status
  }
}


6. 自檢

相當(dāng)于查看接口文檔。
name 是屬性名
description 是屬性的描述。測(cè)試結(jié)果可以自行查看 文章一的測(cè)試鏈接。

query liftDetails {
  __type(name:"Lift") {
    name
    fields {
      name
      description
      type {
        name
        description
      }
    }
  }
}


7. 抽象語(yǔ)法樹(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容