Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eduardorodriguesf/quartz
The command-line tool to build and test HTTP requests.
https://github.com/eduardorodriguesf/quartz
api-client command-line-tool curl http-client rest
Last synced: about 1 month ago
JSON representation
The command-line tool to build and test HTTP requests.
- Host: GitHub
- URL: https://github.com/eduardorodriguesf/quartz
- Owner: EduardoRodriguesF
- License: apache-2.0
- Created: 2023-05-21T22:51:09.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-05-29T12:03:02.000Z (7 months ago)
- Last Synced: 2024-05-29T13:42:14.352Z (7 months ago)
- Topics: api-client, command-line-tool, curl, http-client, rest
- Language: Rust
- Homepage: https://crates.io/crates/quartz-cli
- Size: 476 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# quartz
The command-line tool to build and test HTTP requests.
## About
quartz allows developers to create an API organization project that can be use to share, document and send requests through the terminal.
What quartz is:
- A tool to test and document HTTP requests aimed for developers who love to stay in the terminal.
- A command-line alternative to API clients such as Postman and Insomnia.What Quartz is **not**:
- A cURL replacement.
## Installation
Bash (Linux)
bash -c "$(curl -fsSL https://raw.githubusercontent.com/EduardoRodriguesF/quartz/master/install.sh)"
Homebrew (MacOS)
brew tap eduardorodriguesf/quartz
brew install quartzCargo
Warning: this method is not recommended because it lacks the **man** page. Prefer the other installation options above.
cargo install quartz-cli
## Usage
To create a new project, run:
```sh
$ quartz init .
```Now start creating your requests with the `create` command:
```sh
$ quartz create users/find --url https://api.example.com/users/{{id}}$ quartz create users/update -X PATCH --url https://api.example.com/users/{{id}} --json '{"name": "John Doe"}'
$ quartz create users/create -X POST --url https://api.example.com/users/{{id}} --json '{"email": "[email protected]", "name": "John Doe"}'
```These commands create four *handles*. A handle is like a path to an endpoint. Similarly to file paths, they are segmented
by slash (/). We can see all handles with the `ls` command:```sh
$ quartz ls
--- users
GET users/:id
PATCH users/update
POST users/create
```Notice that `users` does not have any method. That's because it is an empty handle, while all others are definitive endpoints that we can
send requests to.To send a request, make sure you are using it by running the `use` command:
```sh
$ quartz use users/find
```Now you can send the request with the `send` command. Since we also defined a variable `id` in the URL, we need to give this variable a value.
```sh
$ quartz send --var id=123
```This outputs the response body, but we can also see more details with the `last` command, which saves our latest request and response
for us to fetch the data locally.```sh
$ quartz last res head
```You can even output a cURL command to replicate the request:
```sh
$ quartz show snippet --var id=123 curl
curl -L 'https://api.example.com/users/123' -X GET
```Now that you know the basics of quartz, you can start creating more requests and organizing them in your project. For more information and advanced usage
of quartz, check the [Documentation](#documentation).## Documentation
To get started with quartz, head to the [install](#installation) and access the manual page at `man quartz`!
If you have any trouble, you can also read it in markdown [here](doc/quartz.1.md).
## License
This project is under [Apache License 2.0](/LICENSE).