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 传递参数

继续阅读 →传递参数