Skip to main content

GraphQL client in the terminal.

Project description

This project is inspired by https://graphiql-online.com.

https://github.com/eerimoq/gqt/raw/main/docs/assets/showcase.gif

Installation

$ pip3 install gqt

Usage

Set default GraphQL endpoint URL:

$ export GQT_URL=https://mys-lang.org/graphql

Interactively create a query and execute it:

$ gqt
{"statistics": {"number_of_graphql_requests": 234}}

Repeat last query:

$ gqt -r
{"statistics": {"number_of_graphql_requests": 235}}

Print the query instead of executing it:

$ gqt -q
{"query":"{statistics {number_of_graphql_requests}}"}

Use jq for indentation, colors and extracting field values:

$ gqt | jq
{
  "statistics": {
    "number_of_graphql_requests": 236
  }
}
$ gqt | jq .statistics.number_of_graphql_requests
237

Alternatively use json_pp and bat for indentation and colors:

$ gqt | json_pp | bat -l json
───────┬──────────────────────────────────────────────────────────────
        STDIN
───────┼──────────────────────────────────────────────────────────────
   1    {
   2       "statistics" : {
   3          "number_of_graphql_requests" : 238
   4       }
   5    }
───────┴──────────────────────────────────────────────────────────────

Use YAML output and bat for indentation and colors:

$ gqt -y | bat -l yaml
───────┬──────────────────────────────────────────────────────────────
        STDIN
───────┼──────────────────────────────────────────────────────────────
   1    statistics:
   2      number_of_graphql_requests: 239
───────┴──────────────────────────────────────────────────────────────

Known issues

  • Arguments does not work very well.

  • Scrolling.

Ideas

  • Mutations?

  • Subscriptions?

  • Arguments and variables:

    ■: not null
    □: null
    $: variable

    Scalar example:

    ╭─ Query
    │ ▼ standard_library
    │   ▼ package
    │     ■ name: ""
    │     □ name
    │   ▶ packages

    List example:

    ╭─ Query
    │ ▼ item
    │   □ kinds:
    │   ■ kinds2:
    │     [0] ■ a: "foo"
    │         ■ b: "eq"
    │         ■ c:
    │           [0] ■ a: "x"
    │               ■ b: "y"
    │           [1]
    │     [1] ■ a: "bar"
    │         ■ b: "ne"
    │         □ c:
    │     [2]

    Variables example:

    ╭─ Query
    │ ▼ standard_library
    │   ▼ package
    │     $ name: name
    │     ■ id: 5
    │     $ kind: kind
    │     □ name
    │   □ number_of_downloads
    │ ▶ statistics
    
    ╭─ Variables
    │ name: "foo"
    │ kind:
    │   [0] ■ a: "bar"
    │       ■ b: "ne"
    │       □ c:
    │   [1]

    Print the variables:

    $ gqt -v
    {"name": "foo", "kind": [{"a": "bar", "b": "ne"}]}

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gqt-0.38.0.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

gqt-0.38.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file gqt-0.38.0.tar.gz.

File metadata

  • Download URL: gqt-0.38.0.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for gqt-0.38.0.tar.gz
Algorithm Hash digest
SHA256 48c153943f7ed5b4ad3fc75e7c20be3a92f8b045d5b54e23ef9a330559ace1f7
MD5 3cb8783154e2f2f11341d41075afcfe8
BLAKE2b-256 702faf4fea0175b7e847b889ce673046ab4cc78f52d8fb1924c58eceeda6737c

See more details on using hashes here.

File details

Details for the file gqt-0.38.0-py3-none-any.whl.

File metadata

  • Download URL: gqt-0.38.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for gqt-0.38.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fab96448b96f973343ad40a0164a6876294658d908b97a1e5e93107640429641
MD5 be3aaa70652281afc3d54236876bb3b6
BLAKE2b-256 18a78d246294453e1f7a820dde9d05e54ae912f579ba786983d3b7241080f82c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page