今天學習一下GraphQL,可以用來查詢數據庫,根據我們請求的格式返回結果.目前接口請求使用這種方式來拿結果,學習一個新的語言或者方法,我通常採用類比的方式,用自己熟悉的語言去理解他.下面我用安卓中熟悉的方式來解讀一下,GraphQL文檔.
查詢和變更
- 字段類型:標量(基本數據類型,不可以繼續向下解析)/枚舉/Character/Interface/數組
- 輸入對象:變更時傳入的類型,相當於我們上傳一個表單的類型
- 接口(繼承,多態):可以走繼承,請求子類的具體值
- 別名:相同類型,爲了作比較,需要定義不同的名稱.
- 片段(類型的抽取):這樣我們可以查詢類型相同,值不相同的數據,賦給不同的對象.
- 操作名稱:根據操作類型graphql可以知道是哪種操作,就像數據庫的增,刪,改,查一樣.操作名稱是爲了方便我們通過名稱一目瞭然,知道這個查詢是用來幹啥的,也可以在出現問題的時候快速定位.
- 變量:跟在操作名稱後面,就像我們方法中的變量一樣,可以傳不同的值,查詢不同的結果.
- 指令:類似於if/else 通過一些boolean值來判斷是否請求響應的數據.
- 變更(mutation):相當於我們提交給服務器一條數據,用來更新或者添加,之後還可以查詢這條數據變更後的結果.
- 內聯片段:相當於多態,他們有共同的父類,但是又有自己的屬性,通過類型,請求不同的字段.
- 元字段:相當於switch/case,根據不同的值查詢不同的結果.
驗證:相當於語法檢測,可以告訴我們書寫是否規範,報錯提示具體位置
執行:更好的講解了graphql的執行過程,異步解析器,執行結束的節點爲標量,以及返回的格式類型.
內省:感覺就像是java中的反射,可以看到一個類包含哪些字段.
簡單整理一下,希望可以幫助大家更好的理解.