Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/itsezc/crystal-gql

A complete GraphQL client shard for the Crystal language inspired by Apollo client including error handling and planned support for caching, authentication and subscriptions.
https://github.com/itsezc/crystal-gql

crystal-gql crystal-language crystal-shard graphql

Last synced: about 1 month ago
JSON representation

A complete GraphQL client shard for the Crystal language inspired by Apollo client including error handling and planned support for caching, authentication and subscriptions.

Lists

README

        

# GraphQL Client for Crystal

A GraphQL client shard for the Crystal language.

- Version: 0.1.3
- Crystal Version: 0.35.1

## Usage

**Installing**

Just add this to your shards.yml file:

```yml
dependencies:

crystal-gql:
github: itsezc/crystal-gql

```

Then run:

```bash
shards install
```

**Initializing**

```ruby
require "crystal-gql"

# Define the client
api = GraphQLClient.new "https://countries.trevorblades.com"
```

**Querying**

```ruby
# useQuery
data, error, loading = api.useQuery(GQL {
"continents" => [
"code",
"name",
{
"countries" => [
"name",
"capital",
{
"languages" => [
"name"
]
}
]
}
]
})

# or traditional queries
data, error, loading = api.query("{
continents {
code
name
countries {
name
capital
languages {
name
}
}
}
}")

# Print data
print data
```

**Querying**

With authentication:

```ruby
api.add_header("Authorization", "Bearer: TOKEN")
# useQuery
data, error, loading = api.useQuery(GQL {
"continents" => [
"code",
"name",
{
"countries" => [
"name",
"capital",
{
"languages" => [
"name"
]
}
]
}
]
})
```