在大部分情況下,您只需使用 GraphQL 結構語言為您的 API 指定類型,並將其作為引數傳遞給 buildSchema
函式。
GraphQL 結構語言支援 String
、Int
、Float
、Boolean
和 ID
等純量類型,因此您可以在傳遞給 buildSchema
的結構中直接使用這些類型。
預設情況下,每個類型都是可為空的,也就是說,將 null
傳回作為任何純量類型都是合法的。使用驚嘆號表示類型不可為空,因此 String!
是不可為空的字串。
若要使用清單類型,請將類型置於方括號中,因此 [Int]
是整數清單。
這些類型中的每一個都直接對應到 JavaScript,因此您可以在傳回這些類型的 API 中傳回一般的 JavaScript 物件。以下範例顯示如何使用其中一些基本類型
var express = require("express")var { createHandler } = require("graphql-http/lib/use/express")var { buildSchema } = require("graphql")
// Construct a schema, using GraphQL schema languagevar schema = buildSchema(` type Query { quoteOfTheDay: String random: Float! rollThreeDice: [Int] }`)
// The root provides a resolver function for each API endpointvar root = { quoteOfTheDay: () => { return Math.random() < 0.5 ? "Take it easy" : "Salvation lies within" }, random: () => { return Math.random() }, rollThreeDice: () => { return [1, 2, 3].map(_ => 1 + Math.floor(Math.random() * 6)) },}
var app = express()app.all( "/graphql", createHandler({ schema: schema, rootValue: root, }))app.listen(4000)console.log("Running a GraphQL API server at localhost:4000/graphql")
如果您使用 node server.js
執行此程式碼並瀏覽至 http://localhost:4000/graphql,您便可以試用這些 API。
這些範例顯示如何呼叫傳回不同類型的 API。若要將不同類型的資料傳送至 API,您還需要瞭解 傳遞引數至 GraphQL API 的資訊。