Code Monkey home page Code Monkey logo

restish's Introduction

Restish Logo

Works With Restish User Guide CI codecov Docs Go Report Card

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, or how Restish compares to cURL & HTTPie.

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
    • Automatic configuration of API auth if advertised by the API
    • Shell command completion for Bash, Fish, Zsh, Powershell
  • Automatic pagination of resource collections via RFC 5988 prev and next hypermedia links
  • API endpoint-based auth built-in with support for profiles:
    • HTTP Basic
    • API key via header or query param
    • OAuth2 client credentials flow (machine-to-machine, RFC 6749)
    • OAuth2 authorization code (with PKCE RFC 7636) flow
    • On the fly authorization through external tools for custom API signature mechanisms
  • Content negotiation, decoding & unmarshalling built-in:
  • Standardized hypermedia parsing into queryable/followable response links:
  • Local caching that respects RFC 7234 Cache-Control and Expires headers
  • CLI shorthand for structured data input (e.g. for JSON)
  • Shorthand query response filtering & projection
  • Colorized prettified readable output
  • Fast native zero-dependency binary

Articles:

This project started life as a fork of OpenAPI CLI Generator.

restish's People

Contributors

danielgtaylor avatar waldyrious avatar wdullaer avatar kpayson avatar pyr avatar kpetremann avatar lllibailll avatar james-maloney avatar shitz avatar cgardens avatar afh avatar h0x91b-wix avatar exo-cedric avatar eddiemonge avatar martyhub avatar mgagliardo91 avatar r4um avatar rburte-isp avatar csm-thu avatar bunert avatar

Forkers

bunert

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.