Restish is a CLI for interacting with REST-ish HTTP APIs with some nice features built-in, like always having the latest API resources, fields, and operations available when they go live on the API without needing to install or update anything.
See the user guide to get started.
Features include:
- HTTP/2 (RFC 7540) with TLS by default with fallback to HTTP/1.1
- Generic head/get/post/put/patch/delete verbs like
curl
or HTTPie - Generated commands for CLI operations, e.g.
restish my-api list-users
- Automatically discovers API descriptions
- Supported formats
- OpenAPI 3 and JSON Schema
- Automatic configuration of API auth if advertised by the API
- Automatic pagination of resource collections via RFC 5988
prev
andnext
hypermedia links - API endpoint-based auth built-in with support for profiles:
- Content negotiation, decoding & unmarshalling built-in:
- JSON (RFC 8259, https://www.json.org/)
- YAML (https://yaml.org/)
- CBOR (RFC 7049, http://cbor.io/)
- MessagePack (https://msgpack.org/)
- Amazon Ion (http://amzn.github.io/ion-docs/)
- Gzip (RFC 1952) and Brotli (RFC 7932) content encoding
- Standardized hypermedia parsing into queryable/followable response links:
- HTTP Link relation headers (RFC 5988)
- HAL
- Siren
- Terrifically Simple JSON
- JSON:API
- Local caching that respects RFC 7234
Cache-Control
andExpires
headers - CLI shorthand for structured data input (e.g. for JSON)
- JMESPath Plus response filtering & projection
- Colorized prettified readable output
- Fast native zero-dependency binary
This project started life as a fork of OpenAPI CLI Generator.