Awesome
GraphMan
<p align="center"> <img width="300" src="https://raw.githubusercontent.com/Escape-Technologies/graphman/main/graphman.svg"> <br> Quickly scaffold a postman collection for a GraphQL API. </p>GraphMan CLI generates an complete collection from a GraphQL endpoint, containing one request per query & mutation, with pre filled fields, parameters and variables.
Note: GraphMan is designed for the postman-collection spec 2.1
✨GraphMan is fully compatible with the Insomnia API Client out of the box!✨
Status
Motivation
Visualizing and exploring existing graphql APIs can be quite daunting. Using postman to manage all your apis is pretty standard, however creating and maintaining collections is difficult. GraphMan makes thoses things easy, helping you for:
- Graph discovery
- Graph testing
- Collection updating
Usage
Run from url
GraphMan uses deno as a javascript / typescript runtime. That allows to run the CLI from the file url. To get started:
- Install deno
- Run:
deno run https://deno.land/x/graphman@v1.2.2/src/cli.ts <graphql endpoint url>
- Import the generated
[...].postman_collection.json
file in postman.
Install GraphMan
If you want to access graphman easly you can "install" it on your machine:
- Install deno
- Run:
deno install -r -f --allow-net --allow-write -n graphman https://deno.land/x/graphman@v1.2.2/src/cli.ts
- The command will output
export PATH="..."
copy paste it in your~/.bashrc
or~/.zshrc
file to add graphman to your path. You can now run graphman using thegraphman <params>
command! 🎉 To update GraphMan just reproduce the step 2.
Note: this is not a real installation, it just creates a script that basically aliases the run form url command.
Run locally
- Clone the repo
- Run
deno run src/index.ts <params>
Note that deno will ask for network and file-system permissions as it's runtime is secure by default
The relases are mirrored at https://deno.land/x/graphman@VERSION, you can use previous versions if needed.
CLI Options
- Custom output filename:
--out=FILENAME
- Headers:
-H="header: value"
, can be used multiple times. - Global Postman collection authorization header:
--AuthHeader="header: value"
or-A="header: value"
- Get help:
--help
or-h
Examples
You can try graphman on public graphql APIs, and it is a great way to get started with graphQL:
- Rick&Morty API:
deno run https://deno.land/x/graphman@v1.2.2/src/cli.ts https://rickandmortyapi.com/graphql
<img width="300" src="https://raw.githubusercontent.com/Escape-Technologies/graphman/main/collection-example.png"> |
---|
GraphMan collection for the Rick and morty API |
<img width="500" src="https://raw.githubusercontent.com/Escape-Technologies/graphman/main/query-example.png"> |
---|
Character query for the Rick and morty API collection |
Issues and contributions
- Please open an issue if you encounter bugs, with reproduction steps and error message.
- For feature requests, please open an issue too
- Feel free to create merge requests to improve GraphMan !