mirror of
https://github.com/lukaszraczylo/go-simple-graphql.git
synced 2026-10-18 01:27:25 +00:00
Update README with simple example.
This commit is contained in:
@@ -2,6 +2,8 @@ name: Test and release
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
paths-ignore:
|
||||||
|
- '**.md'
|
||||||
branches:
|
branches:
|
||||||
- "*"
|
- "*"
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,25 @@ I've tried to run few graphQL clients with hasura, all of them required conversi
|
|||||||
the appropriate structures, causing issues with non-existing types ( thanks to Hasura ), for example `bigint` which was difficult to export.
|
the appropriate structures, causing issues with non-existing types ( thanks to Hasura ), for example `bigint` which was difficult to export.
|
||||||
Therefore, I present you the simple client to which you can copy & paste your graphQL query, variables and you are good to go.
|
Therefore, I present you the simple client to which you can copy & paste your graphQL query, variables and you are good to go.
|
||||||
|
|
||||||
## Usage
|
## Features
|
||||||
|
|
||||||
|
* Executing GraphQL queries as they are, without types declaration
|
||||||
|
* Compressing produced queries
|
||||||
|
* Support for additional headers
|
||||||
|
* Support for gzip compression ( built into Hasura )
|
||||||
|
|
||||||
|
## Usage example
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
import (
|
||||||
|
fmt
|
||||||
|
gql "github.com/lukaszraczylo/simple-gql-client"
|
||||||
|
)
|
||||||
|
|
||||||
|
// (...)
|
||||||
|
|
||||||
|
gql.GraphQLUrl = "http://127.0.0.1:9090/v1/graphql"
|
||||||
|
|
||||||
headers := map[string]interface{}{
|
headers := map[string]interface{}{
|
||||||
"x-hasura-user-id": 37,
|
"x-hasura-user-id": 37,
|
||||||
"x-hasura-user-uuid": "bde3262e-b42e-4151-ac10-d43fb38f44a5",
|
"x-hasura-user-uuid": "bde3262e-b42e-4151-ac10-d43fb38f44a5",
|
||||||
@@ -36,3 +52,14 @@ fmt.Println(result)
|
|||||||
```json
|
```json
|
||||||
{"tbl_user_group_admins":[{"id":109,"is_admin":1}]}
|
{"tbl_user_group_admins":[{"id":109,"is_admin":1}]}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Working with results
|
||||||
|
|
||||||
|
I'm using an amazing library [tidwall/gjson](https://github.com/tidwall/gjson) to parse the results and extract information required in further steps and I strongly recommend this approach as the easiest and close to painless.
|
||||||
|
|
||||||
|
```go
|
||||||
|
result = gjson.Get(result, "tbl_user_group_admins.0.is_admin").Bool()
|
||||||
|
if result {
|
||||||
|
fmt.Println("User is an admin")
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user