​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

HTML 5实战

HTML 5实战

陶国荣 / 机械工业出版社 / 2011-11 / 59.00元

陶国荣编著的《HTML5实战》是一本系统而全面的HTML 5教程,根据HTML 5标准的最新草案,系统地对HTML 5的所有重要知识点进行了全面的讲解。在写作方式上,本书以一种开创性的方式使理论与实践达到极好的平衡,不仅对理论知识进行了清晰而透彻的阐述,而且根据读者理解这些知识的需要,精心设计了106个完整(每个案例分为功能描述、实现代码、效果展示和代码分析4个部分)的实战案例,旨在帮助读者通过实......一起来看看 《HTML 5实战》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具