知海

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 的类型系统与并发特性。

基本信息

主要特点

  • 基于 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 项目已重定向至此仓库,用户可直接使用新导入路径。

帮助我们改进文档

发现翻译问题或内容错误?请告诉我们。