js版
GraphQL在 NodeJS 服务端中应用最多
装置graphql-yoga
:
npm install graphql-yoga
新建index.js
:
const {GraphQLServer} = require("graphql-yoga")const server = new GraphQLServer({ typeDefs: ` type Query { hello(name:String):String! } `, resolvers: { Query: { hello: (parent, {name}, ctx) => { return `${name},你好!`; } } }})server.start({ port: 4600}, ({port}) => { console.log(`服务器已启动,请拜访: http://localhost:${port}`);})
node index.js 运行
点击链接 进入playground:
query{ hello(name:"dashen")}
参考自 5分钟疾速搭建一个Graphql服务器
Golang版
入门教程
Go罕用的GraphQL服务端库
graphql-go/graphql我的项目的demo:
(文档点此)
package mainimport ( "encoding/json" "fmt" "log" "github.com/graphql-go/graphql")func main() { // Schema fields := graphql.Fields{ "hello": &graphql.Field{ Type: graphql.String, Resolve: func(p graphql.ResolveParams) (interface{}, error) { return "world", nil }, }, } rootQuery := graphql.ObjectConfig{Name: "RootQuery", Fields: fields} schemaConfig := graphql.SchemaConfig{Query: graphql.NewObject(rootQuery)} schema, err := graphql.NewSchema(schemaConfig) if err != nil { log.Fatalf("failed to create new schema, error: %v", err) } // Query query := ` { hello } ` params := graphql.Params{Schema: schema, RequestString: query} r := graphql.Do(params) if len(r.Errors) > 0 { log.Fatalf("failed to execute graphql operation, errors: %+v", r.Errors) } rJSON, _ := json.Marshal(r) fmt.Printf("%s \n", rJSON) // {"data":{"hello":"world"}}}
执行输入
{"data":{"hello":"world"}}
基于此我的项目的实际,参考
Graphql Go 基于Golang实际
代码
本文由mdnice多平台公布