GraphQL client in the terminal.
Project description
Build and execute GraphQL queries in the terminal.
This project is inspired by https://graphiql-online.com.
Installation
pip3 install gqt
It’s recommended to install bat for pretty output.
Controls
Press h or ? for help.
Examples
Set default GraphQL endpoint:
$ export GQT_ENDPOINT=https://mys-lang.org/graphql
Interactively create a query and execute it:
$ gqt
{
"statistics": {
"numberOfGraphqlRequests": 3
}
}
Repeat last query:
$ gqt -r
{
"statistics": {
"numberOfGraphqlRequests": 4
}
}
Print the query instead of executing it:
$ gqt -q
query Query {
statistics {
numberOfGraphqlRequests
}
}
YAML output:
$ gqt -y
statistics:
numberOfGraphqlRequests: 8
Print the schema:
$ gqt --print-schema
type Query {
standardLibrary: StandardLibrary!
statistics: Statistics!
activities: [Activity!]!
}
type StandardLibrary {
package(name: String!): Package!
packages: [Package!]
numberOfPackages: Int
numberOfDownloads: Int
}
...
Known issues
Arguments does not work for scalar and input types.
Unions are not implemented.
And much more.
Ideas
Leaves with arguments:
type Query { foo(id: Int, name: String): String } Unselected: ╭─ Query │ □ foo Selected: ╭─ Query │ ■ foo │ ■ id: 5 │ □ name:
Required arguments with default value:
□: omit ■: non-null value $: variable
Check for schema modifications when starting. Do it in the background and notify the user if it was modified.
New schema fetched from the server. Use it? y/n
List argument example:
╭─ Query │ ▼ item │ ■ kinds: │ [0] ■ a: foo │ ■ b: eq │ ■ c: │ [0] ■ a: x │ ■ b: y │ [1] │ [1] ■ a: bar │ ■ b: ne │ □ c: │ [2]
Input example:
╭─ Query │ ▼ item │ ■ config: │ ■ unit: metric │ □ width: │ □ length │ □ weight
Variables example:
╭─ Query │ ▼ standardLibrary │ ▼ package │ $ name: name │ ■ id: 5 │ $ kind: kind │ □ name │ □ numberOfDownloads │ ▶ statistics ╭─ Variables │ name: time │ kind: │ [0] ■ a: bar │ ■ b: ne │ □ c: │ [1]
Print variables:
$ gqt -v {"name": "foo", "kind": [{"a": "bar", "b": "ne"}]}
Unions:
Always query __typename.
union SearchResult = Book | Author type Book { title: String! } type Author { name: String! } type Query { search(contains: String): [SearchResult!] } Unselected: ╭─ Query │ ▶ search Selected: ╭─ Query │ ▼ search │ ▶ Book │ ■ title │ ▶ Author │ ■ name
Alias?
Press a to create an alias.
Press d to delete an alias.
smallPicture and mediumPicture are aliases of picture.
╭─ Query │ ▶ Book │ ▶ picture │ ▼ smallPicture: picture │ ■ width: 320 │ ■ height: 240 │ ▼ mediumPicture: picture │ ■ width: 800 │ ■ height: 600
Subscriptions. Probably out of scope.
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
Built Distribution
File details
Details for the file gqt-0.67.0.tar.gz
.
File metadata
- Download URL: gqt-0.67.0.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26f00209761249641f09f86376ba4255bd6a6f1a05095377a279fd78e86ea4bc |
|
MD5 | b80293f99de2c23d768fff1add5859f6 |
|
BLAKE2b-256 | f24fc82868d4f753f6210388ccd1999b259719d6096c7edb7f4863544eabe184 |
File details
Details for the file gqt-0.67.0-py3-none-any.whl
.
File metadata
- Download URL: gqt-0.67.0-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eb4425a481533d527950e4d122412338c8fba69b4df6f8038f8906ba54456c9 |
|
MD5 | 8c19450b771f2fb9ed3980652bf5b8de |
|
BLAKE2b-256 | 55d178ce9cb8ce235b4a3dba0dcc8b8eda2473f61725e7b7f8d6ed26fca2c51d |