Skip to main content

GraphQL query builder.

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 end-point URL:

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

Interactively create a query and execute it:

$ gqt
{
    "statistics": {
        "start_date_time": "2022-05-29 20:54:48",
        "number_of_graphql_requests": 234
    }
}

Repeat last query:

$ gqt -r
{
    "statistics": {
        "start_date_time": "2022-05-29 20:54:48",
        "number_of_graphql_requests": 234
    }
}

Print the query instead of executing it:

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

Use jq for colors (not seen below) and extracting field values:

$ gqt | jq
{
  "statistics": {
    "start_date_time": "2022-05-29 20:54:48",
    "number_of_graphql_requests": 235
  }
}
$ gqt | jq .statistics.number_of_graphql_requests
236

Ideas

  • Print built query instead of executing it.

  • Contols:

    • Use / to fuzzy find field.

  • Variables:

    ╭─ Query
    │ ▼ standard_library
    │   ▼ package
    │     $ name*: name
    │     ■ id*: 5
    │     □ name
    │   □ number_of_downloads
    │ ▶ statistics
    
    ╭─ Variables
    │ ■ name: "foo"
  • Arguments:

    Marked with *, or possibly color, or a combination.

    □: null
    ■: not null
    $: variable

    Scalar example:

    ╭─ Query
    │ ▼ standard_library
    │   ▼ package
    │     ■ name*: ""             # Cannot be unselected as it cannot be null.
    │     □ name
    │   ▶ packages

    List example:

    ╭─ Query
    │ ▼ item
    │   □ kinds*:                 # Argument is null.
    │   ■ kinds2*:                # List with two elements.
    │     [0] ■ a: "foo"
    │         ■ b: "eq"
    │         ■ c:
    │           [0] ■ a: "x"
    │               ■ b: "y"
    │           [1]
    │     [1] ■ a: "bar"
    │         ■ b: "ne"
    │         □ c:
    │     [2]

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.26.0.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

gqt-0.26.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for gqt-0.26.0.tar.gz
Algorithm Hash digest
SHA256 fd7a2b3fcb14ce2f89296b9f7a3228902dc8e2bf01578cfa30d8ba975330697a
MD5 96e5fc56729542a95cc7dceeb366b9bc
BLAKE2b-256 1c4d57a27fc80842887a30e88538d5c943612dd4909bd4e9425e67b68da5ce18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gqt-0.26.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 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.26.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd49ba9a9824691bb31e13707ddefda3854d474892c0e8ab1f10e10328985ade
MD5 b7e397c5dcc25081cfecec82c8c267cf
BLAKE2b-256 caedecf9f01d9347ac1273224996bebfe38915232698146b2ce98fb80ffc8c07

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