{"id":13574898,"url":"https://github.com/danielgtaylor/restish","last_synced_at":"2025-04-11T11:50:50.343Z","repository":{"id":40566108,"uuid":"264117985","full_name":"danielgtaylor/restish","owner":"danielgtaylor","description":"Restish is a CLI for interacting with REST-ish HTTP APIs with some nice features built-in","archived":false,"fork":false,"pushed_at":"2024-06-26T19:34:30.000Z","size":15597,"stargazers_count":914,"open_issues_count":46,"forks_count":74,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-10-29T15:19:38.680Z","etag":null,"topics":["auth","auth0","brotli","cbor","cli","fastapi","gzip","hacktoberfest","http2","hypermedia","json","json-schema","msgpack","oauth2","openapi3","openapi31","rest","rest-client","swagger","yaml"],"latest_commit_sha":null,"homepage":"https://rest.sh/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielgtaylor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-15T06:45:59.000Z","updated_at":"2024-10-29T07:46:35.000Z","dependencies_parsed_at":"2023-10-03T03:31:54.139Z","dependency_job_id":"669fdb54-abe8-40d7-86e1-fcffc4a9fa43","html_url":"https://github.com/danielgtaylor/restish","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgtaylor%2Frestish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgtaylor%2Frestish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgtaylor%2Frestish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgtaylor%2Frestish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielgtaylor","download_url":"https://codeload.github.com/danielgtaylor/restish/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248389945,"owners_count":21095700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auth","auth0","brotli","cbor","cli","fastapi","gzip","hacktoberfest","http2","hypermedia","json","json-schema","msgpack","oauth2","openapi3","openapi31","rest","rest-client","swagger","yaml"],"created_at":"2024-08-01T15:00:55.921Z","updated_at":"2025-04-11T11:50:50.320Z","avatar_url":"https://github.com/danielgtaylor.png","language":"Go","readme":"![Restish Logo](https://user-images.githubusercontent.com/106826/82109918-ec5b2300-96ee-11ea-9af0-8515329d5965.png)\n\n[![Works With Restish](https://img.shields.io/badge/Works%20With-Restish-ff5f87)](https://rest.sh/) [![User Guide](https://img.shields.io/badge/Docs-Guide-5fafd7)](https://rest.sh/#/guide) [![CI](https://github.com/danielgtaylor/restish/workflows/CI/badge.svg?branch=main)](https://github.com/danielgtaylor/restish/actions?query=workflow%3ACI+branch%3Amain++) [![codecov](https://codecov.io/gh/danielgtaylor/restish/branch/main/graph/badge.svg)](https://codecov.io/gh/danielgtaylor/restish) [![Docs](https://img.shields.io/badge/godoc-reference-5fafd7)](https://pkg.go.dev/github.com/danielgtaylor/restish?tab=subdirectories) [![Go Report Card](https://goreportcard.com/badge/github.com/danielgtaylor/restish)](https://goreportcard.com/report/github.com/danielgtaylor/restish)\n\n[Restish](https://rest.sh/) is a CLI for interacting with [REST](https://apisyouwonthate.com/blog/rest-and-hypermedia-in-2019)-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.\nCheck out [how Restish compares to cURL \u0026 HTTPie](https://rest.sh/#/comparison).\n\nSee the [user guide](https://rest.sh/#/guide) for how to install Restish and get started.\n\nFeatures include:\n\n- HTTP/2 ([RFC 7540](https://tools.ietf.org/html/rfc7540)) with TLS by _default_ with fallback to HTTP/1.1\n- Generic head/get/post/put/patch/delete verbs like `curl` or [HTTPie](https://httpie.org/)\n- Generated commands for CLI operations, e.g. `restish my-api list-users`\n  - Automatically discovers API descriptions\n    - [RFC 8631](https://tools.ietf.org/html/rfc8631) `service-desc` link relation\n    - [RFC 5988](https://tools.ietf.org/html/rfc5988#section-6.2.2) `describedby` link relation\n  - Supported formats\n    - OpenAPI [3.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md) / [3.1](https://spec.openapis.org/oas/v3.1.0.html) and [JSON Schema](https://json-schema.org/)\n  - Automatic configuration of API auth if advertised by the API\n  - Shell command completion for Bash, Fish, Zsh, Powershell\n- Automatic pagination of resource collections via [RFC 5988](https://tools.ietf.org/html/rfc5988) `prev` and `next` hypermedia links\n- API endpoint-based auth built-in with support for profiles:\n  - HTTP Basic\n  - API key via header or query param\n  - OAuth2 client credentials flow (machine-to-machine, [RFC 6749](https://tools.ietf.org/html/rfc6749))\n  - OAuth2 authorization code (with PKCE [RFC 7636](https://tools.ietf.org/html/rfc7636)) flow\n  - On the fly authorization through external tools for custom API signature mechanisms\n- Content negotiation, decoding \u0026 unmarshalling built-in:\n  - JSON ([RFC 8259](https://tools.ietf.org/html/rfc8259), \u003chttps://www.json.org/\u003e)\n  - YAML (\u003chttps://yaml.org/\u003e)\n  - CBOR ([RFC 7049](https://tools.ietf.org/html/rfc7049), \u003chttp://cbor.io/\u003e)\n  - MessagePack (\u003chttps://msgpack.org/\u003e)\n  - Amazon Ion (\u003chttp://amzn.github.io/ion-docs/\u003e)\n  - Gzip ([RFC 1952](https://tools.ietf.org/html/rfc1952)), Deflate ([RFC 1951](https://datatracker.ietf.org/doc/html/rfc1951)), and Brotli ([RFC 7932](https://tools.ietf.org/html/rfc7932)) content encoding\n- Automatic retries with support for [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) and `X-Retry-In` headers when APIs are rate-limited.\n- Standardized [hypermedia](https://smartbear.com/learn/api-design/what-is-hypermedia/) parsing into queryable/followable response links:\n  - HTTP Link relation headers ([RFC 5988](https://tools.ietf.org/html/rfc5988#section-6.2.2))\n  - [HAL](http://stateless.co/hal_specification.html)\n  - [Siren](https://github.com/kevinswiber/siren)\n  - [Terrifically Simple JSON](https://github.com/mpnally/Terrifically-Simple-JSON)\n  - [JSON:API](https://jsonapi.org/)\n- Local caching that respects [RFC 7234](https://tools.ietf.org/html/rfc7234) `Cache-Control` and `Expires` headers\n- CLI [shorthand](https://github.com/danielgtaylor/openapi-cli-generator/tree/master/shorthand#cli-shorthand-syntax) for structured data input (e.g. for JSON)\n- [Shorthand query](https://github.com/danielgtaylor/shorthand#querying) response filtering \u0026 projection\n- Colorized prettified readable output\n- Fast native zero-dependency binary\n\nArticles:\n\n- [A CLI for REST APIs](https://dev.to/danielgtaylor/a-cli-for-rest-apis-part-1-104b)\n- [Mapping OpenAPI to the CLI](https://dev.to/danielgtaylor/mapping-openapi-to-the-cli-37pb)\n\nThis project started life as a fork of [OpenAPI CLI Generator](https://github.com/danielgtaylor/openapi-cli-generator).\n","funding_links":[],"categories":["Go","cli","Commands"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielgtaylor%2Frestish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielgtaylor%2Frestish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielgtaylor%2Frestish/lists"}