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多平台公布