<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          gqlgen?Go 語言實現(xiàn)的基于 graphql 的服務(wù)器庫

          聯(lián)合創(chuàng)作 · 2023-09-19 18:57

          gqlgen 是一個使用 Go 語言實現(xiàn)的用于快速創(chuàng)建嚴格類型的 graphql 服務(wù)器的庫。

          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)
          }

           

           

          實現(xiàn)此接口,然后通過將其傳遞到生成的代碼中來創(chuàng)建服務(wù)器

           

          func main() {
          	http.Handle("/query", graphql.Handler(gen.NewResolver(yourResolvers{})))
          
          	log.Fatal(http.ListenAndServe(":8080", nil))
          }
          瀏覽 26
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码在线观看网 | 无码人妻一区二区三区精品不付款 | 中文字幕 日本有码 | 黄色在线免看 | 骚妇网|