Go:graph-gophers/graphql-go(GraphQL 实现)
graphql-github-io-zh-Hans生态项目与库
Go:graph-gophers/graphql-go(GraphQL 实现)
项目简介
graph-gophers/graphql-go 是一个用 Go 语言实现的、积极维护的 GraphQL 服务器库。该项目最初托管于 neelance/graphql-go,后迁移至 graph-gophers 组织下继续开发。
通过该库,你可以快速构建符合 GraphQL 规范的 API 服务,并充分利用 Go 的类型系统与并发特性。
基本信息
- 项目名称:graph-gophers/graphql-go
- 描述:Golang 中的一个活跃 GraphQL 实现(原地址为 https://github.com/neelance/graphql-go)
- 官方地址:https://github.com/graph-gophers/graphql-go
- GitHub 仓库:graph-gophers/graphql-go
主要特点
- 基于 GraphQL 官方规范,支持 Schema 定义与解析
- 使用 Go 的反射机制自动映射 GraphQL 类型与 Go 结构体
- 支持查询、变更(Mutation)和订阅(Subscription)
- 提供上下文(context)支持,便于在解析器中传递请求级数据
- 活跃的社区与持续维护,适用于生产环境
快速开始示例
以下是一个简单的 Go 服务示例,展示了如何定义 Schema 并启动 GraphQL 端点:
go
package main
import (
"log"
"net/http"
"github.com/graph-gophers/graphql-go"
"github.com/graph-gophers/graphql-go/relay"
)
var schema = `
type Query {
hello: String!
}
`
type resolver struct{}
func (r *resolver) Hello() string {
return "Hello, world!"
}
func main() {
parsedSchema := graphql.MustParseSchema(schema, &resolver{})
http.Handle("/query", &relay.Handler{Schema: parsedSchema})
log.Fatal(http.ListenAndServe(":8080", nil))
}
更多资源
- 文档与示例:GitHub 仓库
- 迁移说明:原
neelance/graphql-go项目已重定向至此仓库,用户可直接使用新导入路径。
帮助我们改进文档
发现翻译问题或内容错误?请告诉我们。
