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
Name queries:
gqt -n stats -y
statistics:
numberOfGraphqlRequests: 8
gqt -n time -y
standardLibrary:
package:
latestRelease:
version: 0.20.0
gqt -n stats -y -r
statistics:
numberOfGraphqlRequests: 9
gqt -n time -y -r
standardLibrary:
package:
latestRelease:
version: 0.20.0
List cached queries:
gqt -l
Endpoint Query name
---------------------------- ------------
https://mys-lang.org/graphql <default>
https://mys-lang.org/graphql time
https://mys-lang.org/graphql stats
Make arguments variables by pressing v or $ and give them as -v <name>=<value> on the command line:
gqt -v name=time -y
standardLibrary:
package:
latestRelease:
version: 0.20.0
gqt -r -q
query Query($name: String!) {
standardLibrary {
package(name: $name) {
latestRelease {
version
}
}
}
}
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
}
...
Enpoint option and bearer token in HTTP auth header:
gqt -e https://api.github.com/graphql -H "Authorization: bearer ghp_<value>"
Known issues
There is one query cache per gqt version. Would be nice to keep the cache after upgrading gqt.
The query is cleared when reloading the schema.
Ideas
Press c for compact view, hiding fields that are not selected.
Search:
Press / to search for visible fields. Press <Up> and <Down> to move to the previous and next search hit. Highlight all hits. Press <Enter> to end the search and move the cursor to the current hit. Press <Esc> to abort the search and restore the cursor to its pre-search position. Show number of hits.
╭─ Query │ ▼ search │ ▶ Book │ ■ title │ ▶ Author │ ■ name │ ▶ film │ ▶ films /fil 1 of 2 matches
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
Keep valid parts of any existing query when reloading the schema.
Cache across updates.
Save introspection response.
Save last query.
Save cursor and possibly other state.
-- ~/.cache/gqt/cache/generic/ +-- <endpoint 1> +-- schema.json +-- query.graphql +-- state.json +-- query_names/ +-- stats/ +-- schema.json +-- query.graphql +-- state.json
Optionally give schema path on command line. For endpoints that does not support schema introspection.
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.112.0.tar.gz
.
File metadata
- Download URL: gqt-0.112.0.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c08210ccca24e0d20987baf8a77b308b5aa0b2a92bf5c5168d8a5c23ad48e39d |
|
MD5 | 49a90e1e8f007be36ab2920fa317486a |
|
BLAKE2b-256 | 2da882001e5573688573760522b54ee8391a815a7677901945da826e854fb00b |
File details
Details for the file gqt-0.112.0-py3-none-any.whl
.
File metadata
- Download URL: gqt-0.112.0-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 863fc1035dde73a6b1993657fdb75c4a2c4e31cf07942bc04083babbcad3d119 |
|
MD5 | 4667116b956be8a677526b77e2f8430e |
|
BLAKE2b-256 | 72327d132800d9b6a52091439bf098dc27bbbd0da4087dfc4329429d4417b8c0 |