GraphQL LogoGraphQL

基本類型

在大部分情況下,您只需使用 GraphQL 結構語言為您的 API 指定類型,並將其作為引數傳遞給 buildSchema 函式。

GraphQL 結構語言支援 StringIntFloatBooleanID 等純量類型,因此您可以在傳遞給 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 language
var schema = buildSchema(`
type Query {
quoteOfTheDay: String
random: Float!
rollThreeDice: [Int]
}
`)
// The root provides a resolver function for each API endpoint
var 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 的資訊。

繼續閱讀 →傳遞引數