Go to file
Etzelia 4069709a59
Add example and gql type definitions
2020-08-13 15:41:14 -05:00
.gitignore Initial Commit 2020-08-13 15:14:25 -05:00
LICENSE Initial Commit 2020-08-13 15:14:25 -05:00
Makefile Initial Commit 2020-08-13 15:14:25 -05:00
README.md Add example and gql type definitions 2020-08-13 15:41:14 -05:00
ban.go Add example and gql type definitions 2020-08-13 15:41:14 -05:00
client.go Initial Commit 2020-08-13 15:14:25 -05:00
go.mod Initial Commit 2020-08-13 15:14:25 -05:00
go.sum Initial Commit 2020-08-13 15:14:25 -05:00
graphql.go Add example and gql type definitions 2020-08-13 15:41:14 -05:00
ping.go Initial Commit 2020-08-13 15:14:25 -05:00
player.go Add example and gql type definitions 2020-08-13 15:41:14 -05:00
plugin.go Add example and gql type definitions 2020-08-13 15:41:14 -05:00
tps.go Initial Commit 2020-08-13 15:14:25 -05:00
world.go Add example and gql type definitions 2020-08-13 15:41:14 -05:00

README.md

go-serverapi

Go SDK for ServerAPI.

Example

package main

import (
    "context"
    "fmt"
    "net/http"

    "go.etztech.xyz/go-serverapi"
)

func main() {
    // ServerAPI REST client
    client := serverapi.NewClient("https://api.server.com/", &serverapi.ClientOptions{
        HTTP:     http.DefaultClient,
        Password: "",
    })

    // Use the REST API
    players, err := client.Players()
    if err != nil {
        panic(err)
    }

    for _, p := range players {
        fmt.Println(p.Name)
    }

    fmt.Println()
    fmt.Println()

    // GraphQL Client
    g := client.GraphQL()
    r := client.GraphQLRequest(`
{
    players {
        name
    }
}
`)

    // Use the GraphQL API
    data := struct {
        // Uses serverapi.Players for the magic naming of JSON
        Players serverapi.Players
    }{}
    if err := g.Run(context.Background(), r, &data); err != nil {
        panic(err)
    }

    for _, p := range data.Players {
        fmt.Println(p.Name)
    }
}

License

MIT