zvvq技术分享网

Golang框架如何与GraphQL集成?(golang orm框架)

作者:zvvq博客网
导读使用 apollo server 将 graphql 集成到 golang 框架中:安装 apollo server 和 gqlgen 依赖项。使用 gqlgen cli 生成 graphql 模式。定义和实现 graphql 解析器。使用 apollo server 创建 graphql 服务器。运行应用

应用 apollo server 将 graphql 集成到 golang 框架中:组装 apollo server 和 gqlgen 依赖项。应用 gqlgen cli形成 graphql 方式。定义和完成 graphql 解析器。应用 apollo server 建立 graphql 服务器。运作应用软件,并用 graphql playground浏览 graphql api。 内容来自zvvq,别采集哟

copyright zvvq

怎么使用 Apollo Server 将 GraphQL 集成到 Golang 框架中

内容来自samhan

GraphQL 是一种查询语言,容许客户端以申明性方法要求和处理数据。可以将 GraphQL 集成到 Golang 应用程序中,您可以创建给予灵便且强悍的查询和突变功能的 API。

zvvq.cn

应用 Apollo Server

内容来自zvvq,别采集哟

Apollo Server 是一个流行的 GraphQL 服务器架构,它提供了一组工具来帮助你迅速快速地搭建 GraphQL API。本教程将向您展现怎么使用 Apollo Server 将 GraphQL 集成到 Golang 应用程序中。 内容来自zvvq,别采集哟

实战案例 :建立一个简单的 GraphQL API

copyright zvvq

最先,使我们建立一个简单的 Golang 应用软件,它将使用 Apollo Server 公布一个 GraphQL API。

zvvq好,好zvvq

组装依赖项

内容来自zvvq

gogetgithub.com/99designs/gqlgen zvvq好,好zvvq

gogetgithub.com/vektah/gqlparser/v2 copyright zvvq

生成 GraphQL 方式 zvvq.cn

应用 gqlgen CLI生成一个基本的 GraphQL 方式: 内容来自zvvq,别采集哟

gqlgeninit 内容来自samhan

这将在您的项目中建立一个名为 schema.graphql 文件,其中包括你的 GraphQL 模式的定义。

zvvq

定义 GraphQL 方式

内容来自samhan666

在 schema.graphql 中,定义一个包括单独查看解析器的 GraphQL 种类,该解析器将返回一个字符串:

zvvq好,好zvvq

typeQuery{

zvvq好,好zvvq

hello:String 本文来自zvvq

} copyright zvvq

完成 GraphQL 解析器

内容来自zvvq

在 resolver.go 文档中,为查看解析器撰写完成了函数:

zvvq

packageresolvers

本文来自zvvq

import(

内容来自zvvq,别采集哟

"context" zvvq好,好zvvq

)

copyright zvvq

//QueryResolverisaresolverfortheQuerytype. 内容来自samhan666

typeQueryResolverstruct{} zvvq.cn

//Helloresolvesthehellofield.

本文来自zvvq

func(rQueryResolver)Hello(ctxcontext.Context)string{ zvvq

return"Hello,world!" 内容来自zvvq

}

内容来自samhan

建立 GraphQL 服务器

copyright zvvq

在 main.go 文档中,建立应用 Apollo Server 的 GraphQL 服务器: copyright zvvq

packagemain

zvvq

import( zvvq

"log"

内容来自samhan

"net/http"

内容来自zvvq,别采集哟

"github.com/99designs/gqlgen/graphql/handler"

copyright zvvq

"github.com/99designs/gqlgen/graphql/playground"

zvvq好,好zvvq

resolvers"github.com/username/project/graph/resolvers" 内容来自samhan

)

内容来自samhan666

funcmain(){

zvvq.cn

//建立 GraphQL 服务器 copyright zvvq

srv := handler.NewDefaultServer(

zvvq

resolvers.NewExecutableSchema(resolvers.New()), 内容来自zvvq,别采集哟

)

内容来自zvvq,别采集哟

playgroundHandler := playground.Handler("GraphQL Playground", "/query") copyright zvvq

// 路由器,将查询和 Playground 导入到 HTTP 路由器中 zvvq.cn

http.Handle("/", playgroundHandler)

内容来自zvvq,别采集哟

http.Handle("/query", srv) zvvq

// 运行 HTTP 服务器

内容来自zvvq,别采集哟

log.Printf("server listening on port %s", "8080")

zvvq好,好zvvq

log.Fatal(http.ListenAndServe(":8080", nil)) zvvq

} 内容来自samhan

运作应用软件

内容来自zvvq

使用下列指令运作应用软件: 内容来自zvvq,别采集哟

gorunmain.go zvvq.cn

如今,您可以使用 GraphQL Playground(http://localhost:8080/)对 GraphQL API查询和突变。

内容来自zvvq

以上就是Golang架构如何跟GraphQL集成?的详细内容,大量请关注其他类似文章! copyright zvvq