在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):Yamashou/gqlgenc开源软件地址(OpenSource Url):https://github.com/Yamashou/gqlgenc开源编程语言(OpenSource Language):Go 99.8%开源软件介绍(OpenSource Introduction):gqlgencWhat is gqlgenc ?This is Go library for building GraphQL client with gqlgen MotivationNow, if you build GraphQL api client for Go, have choice: These libraries are very simple and easy to handle. However, as I work with gqlgen and graphql-code-generator every day, I find out the beauty of automatic generation. So I want to automatically generate types. Installationgo get -u github.com/Yamashou/gqlgenc How to useClient Codes Onlygqlgenc base is gqlgen with plugins. So the setting is yaml in each format. Load a schema from a remote server: model:
package: generated
filename: ./models_gen.go # https://github.com/99designs/gqlgen/tree/master/plugin/modelgen
client:
package: generated
filename: ./client.go # Where should any generated client go?
models:
Int:
model: github.com/99designs/gqlgen/graphql.Int64
Date:
model: github.com/99designs/gqlgen/graphql.Time
endpoint:
url: https://api.annict.com/graphql # Where do you want to send your request?
headers: # If you need header for getting introspection query, set it
Authorization: "Bearer ${ANNICT_KEY}" # support environment variables
query:
- "./query/*.graphql" # Where are all the query files located? Load a schema from a local file: model:
package: generated
filename: ./models_gen.go # https://github.com/99designs/gqlgen/tree/master/plugin/modelgen
client:
package: generated
filename: ./client.go # Where should any generated client go?
models:
Int:
model: github.com/99designs/gqlgen/graphql.Int64
Date:
model: github.com/99designs/gqlgen/graphql.Time
schema:
- "schema/**/*.graphql" # Where are all the schema files located?
query:
- "./query/*.graphql" # Where are all the query files located? Execute the following command on same directory for .gqlgenc.yml gqlgenc With gqlgenDo this when creating a server and client for Go. You create your own entrypoint for gqlgen. This use case is very useful for testing your server. package main
import (
"fmt"
"os"
"github.com/Yamashou/gqlgenc/clientgen"
"github.com/99designs/gqlgen/api"
"github.com/99designs/gqlgen/codegen/config"
)
func main() {
cfg, err := config.LoadConfigFromDefaultLocations()
if err != nil {
fmt.Fprintln(os.Stderr, "failed to load config", err.Error())
os.Exit(2)
}
queries := []string{"client.query", "fragemt.query"}
clientPackage := config.PackageConfig{
Filename: "./client.go",
Package: "gen",
}
clientPlugin := clientgen.New(queries, clientPackage)
err = api.Generate(cfg,
api.AddPlugin(clientPlugin),
)
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(3)
}
} DocumentsCommentsJapanese CommentsThese codes have Japanese comments. Replace with English. SubscriptionThis client does not support subscription. If you need a subscription, please create an issue or pull request. Pre-conditionsclientgen is created based on modelgen. So if you don't have a modelgen, it may be a mysterious move. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论