歡迎光臨
每天分享高質量文章

使用ASP.NET Core開發GraphQL伺服器 — 預備知識(下)

上一篇:使用ASP.NET Core開發GraphQL伺服器 — 極簡預備知識(上)

處理資料

巢狀欄位

看例子:

我想檢視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成功後傳回的欄位。

然後在左下方設定好引數,執行操作即可。

右側是傳回的結果。

我們再反查一遍,看看是否添加了新的評論:

我點選了兩次,所以新增加了兩個評論。

好吧簡介就寫到這吧,儘管很不完整。

下篇開始實戰。

    已同步到看一看
    贊(0)

    分享創造快樂