五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

GraphQL 快速入門(mén)【5】GraphQL 示例

2021-09-29 20:06 作者:信碼由韁  | 我要投稿

【注】本文譯自:
https://www.tutorialsPoint.com/graphql/graphql_quick_guide.htm


在本章中,我們將創(chuàng)建一個(gè)簡(jiǎn)單的 API,它返回一條問(wèn)候消息 HelloWorld,并使用 GraphiQL 訪問(wèn)它。

示例

本示例基于 NodeJS、Express 和 Apollo 服務(wù)器。我們將學(xué)習(xí)通過(guò)以下步驟將所有概念結(jié)合起來(lái):

第 1 步:設(shè)置 Express

ExpressJS 是一個(gè) Web 應(yīng)用框架,可幫助構(gòu)建網(wǎng)站和 Web 應(yīng)用程序。在這個(gè)例子中,我們將在 Express 框架之上構(gòu)建一個(gè) GraphQL API。

下一步是創(chuàng)建文件夾?hello-world-server?并從終端導(dǎo)航到同一文件夾。添加 package.json,并為包命名。由于此包僅在內(nèi)部使用,我們可以將其聲明為私有。

{

????"name":?"hello-world-server",

????"private":?true

}

安裝 Express 服務(wù)器的依賴(lài)項(xiàng),如下所示:

C:\Users\Admin\hello-world-server>npm install express body-parser cors

body-parser?是一個(gè)中間件包,可以幫助 Express 有效地處理 HTTP Post 請(qǐng)求。cors 是另一個(gè)處理跨源資源共享的中間件包。

在項(xiàng)目文件夾中創(chuàng)建?server.js?文件并在其中鍵入以下內(nèi)容:

const?bodyParser?=?require('body-parser')

const?cors?=?require('cors')

const?express?=?require('express')

const?port?=?process.env.PORT||?9000

const?app?=?express()

//register?middleware

app.use(bodyParser.json()?,?cors())

app.listen(port,?()?=>?console.log(`server?is?up?and?running?at?${port}`))


要驗(yàn)證 Express 服務(wù)器是否已啟動(dòng)并正在運(yùn)行,請(qǐng)?jiān)诮K端窗口中執(zhí)行以下代碼:

C:\Users\Admin\hello-world-server>node server.js

以下輸出顯示在服務(wù)器控制臺(tái)中。這表明 express 服務(wù)器正在端口 9000 上運(yùn)行。

server is up and running at 9000

如果您打開(kāi)瀏覽器并輸入 http://localhost:9000,您將看到以下屏幕:


要停止服務(wù)器,請(qǐng)按?Ctrl + C

第 2 步:安裝 GraphQL 和 Apollo Server

現(xiàn)在 Express 已配置,下一步是下載以下 GraphQL 依賴(lài)項(xiàng):

  • graphql

  • graphql-tools

  • apollo-server-express@1

我們將使用 Apollo 服務(wù)器 v1.0,因?yàn)樗且粋€(gè)穩(wěn)定版本。鍵入以下命令來(lái)安裝這些依賴(lài)項(xiàng):

C:\Users\Admin\hello-world-server>npm install graphql graphql-tools apollo-server-express@1

我們可以通過(guò)檢查我們之前創(chuàng)建的?package.json?文件來(lái)驗(yàn)證這些依賴(lài)項(xiàng)是否安裝成功。

{

????"name":?"hello-world-server",

????"private":?true

}

第 3 步:定義模式

GraphQL 模式定義了可以從服務(wù)中獲取什么樣的對(duì)象,以及它具有哪些字段??梢允褂?GraphQL 模式定義語(yǔ)言來(lái)定義模式?,F(xiàn)在,在?server.js?文件中添加以下代碼片段:


此處,查詢包含返回字符串值?的?greeting?屬性。

第 4 步:創(chuàng)建解析器

創(chuàng)建解析器的第一步是添加一些代碼來(lái)處理對(duì)問(wèn)候字段的請(qǐng)求。這是在解析器中指定的。解析器函數(shù)的結(jié)構(gòu)必須與模式匹配。在?server.js?文件中添加以下代碼片段。

//?Adding?resolver

const?resolverObject?=?{

????Query:?{

????????greeting:?()?=>?'Hello?GraphQL??From?TutorialsPoint?!!'

????}

}

第二步是使用?makeExecutableSchema?綁定模式和解析器。這個(gè)函數(shù)是在 graphql-tools 模塊中預(yù)定義的。在?server.js?文件中添加以下代碼片段。

const?{makeExecutableSchema}?=?require('graphql-tools')

const?schema?=?makeExecutableSchema({typeDefs:typeDefinition,?resolvers:resolverObject})

第 5 步:定義從 ReactJS/GraphiQL 應(yīng)用獲取數(shù)據(jù)的路由

在?server.js?文件中添加以下代碼片段:

const?{graphqlExpress,?graphiqlExpress}?=?require('apollo-server-express')

//create?routes?for?graphql?and?graphiql

app.use('/graphql',graphqlExpress({schema}))

app.use('/graphiql',graphiqlExpress({endpointURL:'/graphql'}))

graphqlExpress?函數(shù)有助于注冊(cè)路由
http://localhost:9000/graphql。ReactJS 應(yīng)用程序可以使用此端點(diǎn)來(lái)查詢數(shù)據(jù)。同樣,graphqliExpress 函數(shù)有助于注冊(cè)路由?http://localhost:9000/graphiql。這將被 GraphiQL 瀏覽器客戶端用于測(cè)試 API。

完整的 server.js 代碼如下:

Const?bodyParser?=?require('body-parser')

const?cors?=?require('cors')

const?express?=?require('express')

const?port?=?process.env.PORT?||?9000

const?app?=?express()

//register?middleware

app.use(bodyParser.json(),?cors())

app.listen(port,?()?=>?console.log(`server?is?up?and?running?at?${port}`))

//?Adding?Type?Definitions

const?typeDefinition?=?`

???type?Query??{

??????greeting:?String

???}`

//?Adding?resolver

const?resolverObject?=?{

????Query:?{

????????greeting:?()?=>?'Hello?GraphQL?From?TutorialsPoint !!'

????}

}

const?{makeExecutableSchema}?=?require('graphql-tools')

const?schema?=?makeExecutableSchema({typeDefs:typeDefinition,?resolvers:resolverObject})

const?{graphqlExpress,?graphiqlExpress}?=?require('apollo-server-express')

//create?routes?for?graphql?and?graphiql

app.use('/graphql',graphqlExpress({schema}))

app.use('/graphiql',graphiqlExpress({endpointURL:'/graphql'}))

第 6 步:?jiǎn)?dòng)應(yīng)用

使用 Node.js 執(zhí)行?server.js,如下所示:

C:\Users\Admin\hello-world-server>node server.js

第 7 步:測(cè)試 GraphQL API

打開(kāi)瀏覽器并輸入
http://localhost:9000/graphiql。在GraphiQL的查詢選項(xiàng)卡中,輸入以下內(nèi)容:

{

??greeting

}

來(lái)自服務(wù)器的響應(yīng)如下:

{

????"data":?{

????????"greeting":?"Hello?GraphQL?From?TutorialsPoint?!!"

????}

}

如下圖所示:


注意:請(qǐng)確保使用 Apollo Server 1.0 版。


GraphQL 快速入門(mén)【5】GraphQL 示例的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
贺兰县| 区。| 天长市| 鞍山市| 明溪县| 万安县| 十堰市| 桐柏县| 南川市| 嘉黎县| 建水县| 凤冈县| 大新县| 澄迈县| 澄城县| 化德县| 肇庆市| 福贡县| 乡城县| 封丘县| 磐石市| 桓仁| 阳朔县| 郎溪县| 崇礼县| 横山县| 桦甸市| 余干县| 兴隆县| 赤水市| 东山县| 中西区| 台江县| 福州市| 丘北县| 土默特右旗| 交口县| 四平市| 玉山县| 含山县| 揭东县|