三、使用express和graphql 搭建helloworld
四、引數型別與引數傳遞
graphql clients
六、使用mutations修改資料
七、認證與中介軟體
八、高階constructing types(提高可維護性,**量上公升)
graphql 是乙個用於 api 的查詢語言,是乙個使用基於型別系統來執行查詢的服務端執行時(型別系統由你的資料定義)。graphql 並沒有和任何特定資料庫或者儲存引擎繫結,而是依靠你現有的**和資料支撐。
乙個 graphql 服務是通過定義型別和型別上的字段來建立的,然後給每個型別上的每個字段提供解析函式。
1.restful乙個介面只能返回乙個資源,graphql一次可以獲得多個資源
2.restful用不同的url來區分資源,graphql用型別區分資源
1.請求需要的資料,不多不少。(restful會返回所有的資料)
2.獲取多個資源,只用乙個請求
3.描述所有可能型別的系統,便於維護。
1.先建立乙個資料夾graphqltext,在資料夾裡建立乙個helloword.js檔案,**如下
const express =
// 定義schema,查詢和型別
const schema =
buildschema(`
type account
type query `)
// 定義查詢對應的處理器
);
2.cmd進入graphqltext的目錄,輸入npm init -y 目的是為了生成packjson檔案
3.npm install express graphql express-graphql -s 目的為了安裝三個元件
4.安裝完畢訪問url localhost:3000/graphql
1.1基本型別:string,int,float,boolean和id,可以在shema宣告的時候直接使用
1.2型別 代表陣列,例如: [int]代表整型陣列
2.1 和js傳遞引數一樣,小括號定義形參,但是注意:引數需要定義型別
2.2 !(嘆號)代表引數不能為空
type query
2.3核心**
const schema =
buildschema(`
type query `)
const root =
)return obj[classno];}
}
3.1graphql允許使用者自定義引數型別,通常用來描述獲取的資源的屬性
3.2核心**
// 定義schema,查詢和型別
const schema =
buildschema(`
type account
type query `)
// 定義查詢對應的處理器
const root =
)return obj[classno];}
,account()
)=>
return
3000;}
return
}}
1.1在basetype.js中新增公開資料夾,供使用者訪問靜態資源
1.2新建public資料夾,裡面建立index.html
<
!doctype html>
"en"
>
"utf-8"
>
"viewport" content=
"width=device-width, initial-scale=1.0"
>
"x-ua-compatible" content=
"ie=edge"
>
document<
/title>
<
/head>
"getdata()"
>獲取資料<
/button>
<
/body>
function
getdata()}`
const variables =
fetch
('/graphql',,
body:
json
.stringify()
}).then
(res => res.json)
.then
(json =>)}
<
/script>
<
/html>
mutation.js**
const express =
// 定義schema,查詢和型別, mutation
const schema =
buildschema(`
input accountinput
type account
type mutation
type query `)
const fakedb =
;// 定義查詢對應的處理器
const root =
return arr;},
createaccount()
,updateaccount()
, fakedb[id]
, input)
; fakedb[id]
= updatedaccount;
// 返回儲存結果
;
1.原始**
// 定義schema,查詢和型別
const schema =
buildschema(`
type account
type query
`)
2.高階**
var accounttype =
newgraphql.graphqlobjecttype(,
age:
, ***:
, department:}}
);
1.原始**
// 定義schema,查詢和型別
const schema =
buildschema(`
type account
type query
`)
2.高階**
var querytype =
newgraphql.graphqlobjecttype(}
, resolve:
function
(_,)}}
}});
var schema = new graphql.graphqlschema();
graphql的學習(一)
介紹 graphql是facebook開發的一 種資料查詢語言,並於2015年 公開發布。它是rest api的替代品 graphql既是 種用於api的查詢語言也是一 個滿足你資料查 詢的執行時。graphql 對你的api中的資料提供了一套易於理 解的完整描述,使得客戶端能夠準確地獲得它需要的資...
Graphql學習 二 查詢和變更
這一篇介紹一下graphql實際使用時的語法和一些要素 字段 fields 請求物件上的特定字段,返回結果的資料字段 可以是基本型別 string,int 也可以是自定義物件型別 可以看到,請求的時候可以對欄位進行層級選擇,使客戶端可以一次性取的級聯關係的相關資料。別名 aliases 簡單說來就是...
GraphQL 標量型別
標量 scalartypedefinition 是 graphql 中不可分割的原子資料型別,在服務中充當葉子節點。對於客戶端而言,合法的查詢集 select set 必須到達葉子節點,也就是到達標量型別節點。graphql 規範提供了五種標量 int 32 位有符號整型,超出精度範圍後,引擎會丟擲...