Skip to content

SimpleGraphqlClient is a graphql client, focused on simplicity and ease of use.

License

Notifications You must be signed in to change notification settings

gen1321/simple_graphql_client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleGraphqlClient

Simple Graphql client for elixir!

Why

Q: There is a lot of others GraphQL clients for elixir, why creating another one.

A: Because some of them wants you to interpolate variables directly into your query string, and IMHO that is not best approach, some of them are too complicated for just pick them up. And some of them extremely cool like Maple but do not fit into general usage.

Usage

Query/Mutation example

iex>
query = "query users($name: String){users(name: $name){name}}"
SimpleGraphqlClient.graphql_request(query, %{name: "Boris"})
# Will produce
{:ok,
%SimpleGraphqlClient.Response{
  body: {:ok, %{"data" => %{"users" => []}}},
  headers: [],
  status_code: 200
  }
}

Subscription example

sub_query = "
  subscription testsub {
    userAdded{
      email
    }
  }
"
SimpleGraphqlClient.absinthe_subscribe(sub_query, %{}, &IO.inputs/1)

# Will produce 
%{"userAdded" => %{"email" => "testuser@example.com"}}

More examples

You can find more examples in test_app/test/graphql folder

Configuration

For configuration i suggest to write your own wrappers of &graphql_request/3 or any subscribe function. If you want to pass Authorization parametrs to WS connection, please encode them into url.

Installation

def deps do
  [
    {:simple_graphql_client, "~> 0.2.0"}
  ]
end

Roadmap

  • Add support for subscribtion(50% done, absinthe subscriptions already here)
  • Better Dialyzer
  • CI/Test coverege

PRs are WELCOME

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/simple_graphql_client.

About

SimpleGraphqlClient is a graphql client, focused on simplicity and ease of use.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages