​Go 语言实现的基于 graphql 的服务器库 gqlgen

码农软件 · 软件分类 · 高性能网络开发库 · 2019-08-31 15:44:17

软件介绍

gqlgen 是一个使用 Go 语言实现的用于快速创建严格类型的 graphql 服务器的库。

dep ensure -add github.com/vektah/gqlgen

示例代码

定义 schema

schema {
	query: Query
	mutation: Mutation
}

type Query {
	todos: [Todo!]!
}

type Mutation {
	createTodo(text: String!): Todo!
}

type Todo {
	id: ID!
	text: String!
	done: Boolean!
	user: User!
}

type User {
    id: ID!
    name: String!
}

定义模型

package yourapp

type Todo struct {
	ID     string
	Text   string
	Done   bool
	UserID int
}

type User struct {
    ID string	
    Name string
}

告诉生成器如何在 types.json 中的两者之间进行映射

{
  "Todo": "github.com/you/yourapp.Todo",
  "User": "github.com/you/yourapp.User"}

然后从其中生成运行时

gqlgen -out generated.go

在生成的文件的顶部将是与完成所需的图的解析器的接口

package yourapptype Resolvers interface {
	Mutation_createTodo(ctx context.Context, text string) (Todo, error)

	Query_todos(ctx context.Context) ([]Todo, error)

	Todo_user(ctx context.Context, it *Todo) (User, error)
}

实现此接口,然后通过将其传递到生成的代码中来创建服务器

func main() {
	http.Handle("/query", graphql.Handler(gen.NewResolver(yourResolvers{})))

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

本文地址:https://codercto.com/soft/d/13579.html

Erlang趣学指南

Erlang趣学指南

邓辉、孙鸣 / 人民邮电出版社 / 2016-9-7 / 79.00元

这是一本讲解Erlang编程语言的入门指南,内容通俗易懂,插图生动幽默,示例短小清晰,结构安排合理。书中从Erlang的基础知识讲起,融汇所有的基本概念和语法。内容涉及模块、函数、类型、递归、错误和异常、常用数据结构、并行编程、多处理、OTP、事件处理,以及所有Erlang的重要特性和强大功能。一起来看看 《Erlang趣学指南》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换