Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eerimoq/gqt
Build and execute GraphQL queries in the terminal.
https://github.com/eerimoq/gqt
Last synced: about 2 months ago
JSON representation
Build and execute GraphQL queries in the terminal.
- Host: GitHub
- URL: https://github.com/eerimoq/gqt
- Owner: eerimoq
- License: mit
- Created: 2022-05-29T08:57:47.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-15T16:49:53.000Z (about 1 year ago)
- Last Synced: 2024-08-04T09:24:58.407Z (about 2 months ago)
- Language: Python
- Homepage:
- Size: 20.5 MB
- Stars: 460
- Watchers: 5
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
GraphQL client in the terminal
==============================Build and execute GraphQL queries in the terminal.
This project is inspired by https://graphiql-online.com.
.. image:: https://github.com/eerimoq/gqt/raw/main/docs/assets/showcase.gif
Installation
------------.. code-block::
pip3 install gqt
It's recommended to install `bat`_ for pretty output.
Controls
--------- Press ``h`` or ``?`` for help.
Examples
--------Set default GraphQL endpoint:
.. code-block::
export GQT_ENDPOINT=https://mys-lang.org/graphql
Interactively create a query and execute it:
.. code-block::
gqt
.. code-block:: json
{
"statistics": {
"numberOfGraphqlRequests": 3
}
}Repeat last query:
.. code-block::
gqt -r
.. code-block:: json
{
"statistics": {
"numberOfGraphqlRequests": 4
}
}Print the query (and variables) instead of executing it:
.. code-block::
gqt -q
.. code-block:: graphql
Query:
query Query {
statistics {
numberOfGraphqlRequests
}
}Variables:
{}YAML output:
.. code-block::
gqt -y
.. code-block:: yaml
statistics:
numberOfGraphqlRequests: 8Name queries:
.. code-block::
gqt -n stats -y
.. code-block:: yaml
statistics:
numberOfGraphqlRequests: 8.. code-block::
gqt -n time -y
.. code-block:: yaml
standardLibrary:
package:
latestRelease:
version: 0.20.0.. code-block::
gqt -n stats -y -r
.. code-block:: yaml
statistics:
numberOfGraphqlRequests: 9.. code-block::
gqt -n time -y -r
.. code-block:: yaml
standardLibrary:
package:
latestRelease:
version: 0.20.0List queries:
.. code-block::
gqt -l
.. code-block::
Endpoint Query name
---------------------------- ------------
https://mys-lang.org/graphql
https://mys-lang.org/graphql time
https://mys-lang.org/graphql statsMake arguments variables by pressing ``v`` and give them as ``-v
=`` on the command line:.. code-block::
gqt -v name=time -y
.. code-block:: yaml
standardLibrary:
package:
latestRelease:
version: 0.20.0.. code-block::
gqt -r -q
.. code-block:: graphql
query Query($name: String!) {
standardLibrary {
package(name: $name) {
latestRelease {
version
}
}
}
}Print the schema:
.. code-block::
gqt --print-schema
.. code-block:: graphql
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:
.. code-block::
gqt -e https://api.github.com/graphql -H "Authorization: bearer ghp_"
Ideas
------ Press ``c`` for compact view, hiding fields that are not selected.
- Search:
Press ``/`` to search for visible fields. Press ```` and
```` to move to the previous and next search hit. Highlight
all hits. Press ```` to end the search and move the cursor to
the current hit. Press ```` to abort the search and restore the
cursor to its pre-search position. Show number of hits... code-block::
╭─ 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``.
.. code-block::
╭─ Query
│ ▶ Book
│ ▶ picture
│ ▼ smallPicture: picture
│ ■ width: 320
│ ■ height: 240
│ ▼ mediumPicture: picture
│ ■ width: 800
│ ■ height: 600- Optionally give schema path on command line. For endpoints that does
not support schema introspection... _bat: https://github.com/sharkdp/bat