Skip to content

A library for working with GraphQL, Elixir Absinthe and Apollo Studio.

License

Notifications You must be signed in to change notification settings

mattste/apollo_ex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ApolloEx

A library for working with Absinthe and Apollo Studio. It currently supports sending Apollo-compatible usage tracing to Apollo Studio/GraphOS.

For documentation on Apollo usage reporting/tracing, see ApolloEx.Tracing.

Tracing

ApolloEx.Tracing currently supports building a valid trace for a given GraphQL query. You can see the built query by inspecting the extensions field in the GraphQL response. For more details on Apollo usage reporting, see their documentation here.

ApolloEx.Tracing support for pushing the traces from Absinthe to GraphOS is currently a WIP.

Usage

In order for traces to be generated, ApolloEx requires custom Absinthe pipeline phases.

If you're using Absinthe.run/3, you can use this function as the pipeline_modifier option.

Absinthe.run(query, MyAppWeb.Schema, pipeline_modifier: ApolloEx.Tracing.modify_pipeline/2)

If you're using Absinthe.Plug, you can use this function for the pipeline option. For more details, see Absinthe.Plug documentation.

plug Absinthe.Plug,
  schema: MyAppWeb.Schema,
  pipeline: {ApolloEx.Tracing, :modify_pipeline}

Installation

If available in Hex, the package can be installed by adding apollo_ex to your list of dependencies in mix.exs:

def deps do
  [
    {:apollo_ex, "~> 0.1.0"}
  ]
end

Credits

There have been a few attempts by some excellent community members at this in the past but most attempts have been abandoned. Unfortunately, they are not valid with the latest usage reporting specification. I ran into these issues trying to use the previous libraries in production.

This project aims to distinguish itself by being valid, extensively tested and providing more tools for interacting with GraphOS in the future.

Prior work:

Documentation

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

About

A library for working with GraphQL, Elixir Absinthe and Apollo Studio.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published