上一篇文章:https://www.cnblogs.com/cgzl/p/9734083.html
處理數據
嵌套字段
看例子:
我想查看viewer下的repositories。注意里面的edges,一旦看到這個詞,通常就表示有連接到某個數組的數據。在這里就是一個集合的repository。
edges里面的node代表viewer列表里不同的repository。
查詢報錯了,因為這里需要多repositories有個翻頁的動作,所以需要first或last參數。
添加first參數以后就可以看到正確的結果了:
把參數換成last也可以,我就不試了。
連接 Connection
查看Docs,可以看到viewer下repositories的返回類型是RepositoryConnection:
再點擊進去:
可以看到RepositoryConnection下面的edges是一個RepositoryEdge的列表。
繼續點擊進去,可以看到RepositoryEdge下面的node就是一個Repository:
把上面的關系用圖來表示就是:
多重嵌套字段
直接看例子就行:
翻頁
之前的例子使用了first或last參數進行翻頁,但除此之外還有很多種方式可以用來翻頁。
具體如何翻頁,還要看您如何在schema中定義。
下面再看一個例子:
查看文檔,可以看到issues所有的參數定義:
它們都是用來過濾數據和進行翻頁的。
為查詢起名
之前的例子我們大多把query關鍵字忽略了,而完整的寫法應該是:
query就像是查詢的名稱,但是如果都叫query就不好區分了,所以我們可以為查詢起名,就在query后邊加上名字即可:
這樣這個查詢既讓人明白又可以復用。查詢的結果還是一樣的。
查詢變量
之前例子的參數值都是寫死的,我們可以在查詢的名稱后邊加上參數變量,使用$+名稱表示變量,然后將變量傳遞給相應的字段。而變量的值可以在左下角的窗口里設定:
這個查詢結果還是一樣的。
變化 Mutation
之前的例子都是查詢數據。下面講講如何修改數據。
修改數據就需要用到 mutation。
Mutation的特點如下:
- 和REST里的POST,PUT和DELETE相似。
- Mutation里使用payload發送數據。
- GraphQL修改schema背后的數據集。
- API定義了哪些mutation是允許的。
下面看例子,我要為一個Repository的Issue添加評論,首先查詢,獲得一個Issue的id:
然后做mutation:
這里使用mutation關鍵字,隨后跟着mutation的名字和參數變量。該參數變量的類型是AddCommentInput,是一個定義好的對象。
addComment這個操作里面定義的字段是要在mutation成功后返回的字段。
然后在左下方設定好參數,執行操作即可。
右側是返回的結果。
我們再反查一遍,看看是否添加了新的評論:
我點擊了兩次,所以新增加了兩個評論。
好吧簡介就寫到這吧,盡管很不完整。
下篇開始實戰。