Coman
Coman is a simple API manager designed to streamline API management and request sending. Its key features include:
- Collections Management: Store APIs grouped in collections where each collection can have a base URL.
- Endpoint Management: Each endpoint is relative to its parent collection's URL. Endpoints can have multiple headers and a body.
- Header Merging: Collections can have default headers used by their endpoints. If an endpoint defines the same header as its parent collection, the endpoint header will override the collection header.
- Command Memory: Coman has a few subcommands and options that are easy to remember.
- Persist Collections: Coman saves a JSON file in the home directory.
- Pretty JSON output: By default, API results are treated as JSON unless the streaming option is defined.
Table of Contents
Installation
Prerequisites
- Rust (latest stable version recommended)
Building from Source
-
Clone the repository:
-
Build the project:
-
The binary will be available at
target/release/coman.
Alternatively, you can run it directly with:
Usage
Main Commands
- list: List APIs Collections
- man: Managing APIs
- req: Sending requests
- run: Running collections endpoints
- url: Print request URL with headers and body
- test: Run tests on collections
- help: Print this message or the help of the given subcommand(s)
Global Options
-h, --help: Print help-V, --version: Print version
Command Details
List APIs Collections (list)
List all collections and endpoints.
Usage:
Options:
-c, --col <COL>: Specify a collection (default: all)-e, --endpoint <ENDPOINT>: Specify an endpoint (default: all)-q, --quiet: Quiet mode-v, --verbose: Verbose output-h, --help: Print help
Managing APIs (man)
Manage API collections and endpoints.
Usage:
Commands:
- list: List collections and endpoints
- update: Update a collection or endpoint headers and body
- delete: Delete a collection or endpoint
- copy: Copy a collection or endpoint
- col: Add a new collection
- endpoint: Add a new endpoint to a collection
- help: Print this message or the help of the given subcommand(s)
Options:
-h, --help: Print help
Sending Requests (req)
Send HTTP requests.
Usage:
Commands:
- get
- post
- put
- delete
- patch
- help: Print this message or the help of the given subcommand(s)
Options:
-v, --verbose: Verbose output-s, --stream: Stream the request/response (read bytes from stdin and send as the request body or multipart data to the endpoint)-h, --help: Print help
Running Collections Endpoints (run)
Run endpoints from collections.
Usage:
Options:
-v, --verbose: Verbose output-s, --stream: Stream the request/response (output response as bytes)-h, --help: Print help
Print Request URL (url)
Print the request URL with headers and body.
Usage:
Options:
-h, --help: Print help
Examples
Managing Collections
-
Add a new collection:
-
Add an endpoint to a collection:
-
List all collections:
-
List endpoints in a specific collection:
Sending Requests
-
Send a GET request:
-
Send a POST request with a body:
-
Send a request with headers:
Running Endpoints
- Run an endpoint from a collection:
Pipe operation
Coman supports reading request body from standard input when piping data. This is useful for sending JSON payloads or other data directly from files or other commands.
-
Send JSON data from a file as the request body:
| -
Pipe output from another command as the request body:
|
When data is piped to coman, it will override any body defined in the endpoint configuration.
Limitations
- Coman can't delete headers or body after created. Instead, you can delete the endpoint.
For more help, use the help command with any of the subcommands: