hoppscotch/README.md

299 lines
11 KiB
Markdown
Raw Normal View History

2019-08-21 13:18:20 +00:00
<div align="center">
2021-06-30 14:56:11 +00:00
<a href="https://hoppscotch.io">
<img
2021-09-17 12:00:55 +00:00
src="https://avatars.githubusercontent.com/u/56705483"
alt="Hoppscotch"
2021-06-30 14:56:11 +00:00
height="64"
/>
</a>
<h3>
2021-06-30 14:56:11 +00:00
<b>
Hoppscotch
2021-06-30 14:56:11 +00:00
</b>
</h3>
<b>
Open Source API Development Ecosystem
</b>
<p>
2019-11-02 21:59:31 +00:00
2021-06-30 14:56:11 +00:00
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen?logo=github)](CODE_OF_CONDUCT.md) [![Website](https://img.shields.io/website?url=https%3A%2F%2Fhoppscotch.io&logo=hoppscotch)](https://hoppscotch.io) [![Tests](https://github.com/hoppscotch/hoppscotch/actions/workflows/tests.yml/badge.svg)](https://github.com/hoppscotch/hoppscotch/actions) [![Tweet](https://img.shields.io/twitter/url?url=https%3A%2F%2Fhoppscotch.io%2F)](https://twitter.com/share?text=%F0%9F%91%BD%20Hoppscotch%20%E2%80%A2%20Open%20source%20API%20development%20ecosystem%20-%20Helps%20you%20create%20requests%20faster,%20saving%20precious%20time%20on%20development.&url=https://hoppscotch.io&hashtags=hoppscotch&via=hoppscotch_io)
2019-11-02 21:59:31 +00:00
2019-11-02 21:56:08 +00:00
</p>
<p>
2021-06-30 14:56:11 +00:00
<sub>
Built with ❤︎ by
<a href="https://github.com/hoppscotch/hoppscotch/graphs/contributors">
contributors
</a>
2019-11-02 21:56:08 +00:00
</sub>
2019-09-27 17:29:21 +00:00
</p>
2021-06-30 14:56:11 +00:00
<br />
<p>
<a href="https://hoppscotch.io">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/hoppscotch-common/public/images/banner-dark.png">
<source media="(prefers-color-scheme: light)" srcset="./packages/hoppscotch-common/public/images/banner-light.png">
<img alt="Hoppscotch" src="./packages/hoppscotch-common/public/images/banner-dark.png">
</picture>
2021-06-30 14:56:11 +00:00
</a>
</p>
2019-08-21 13:18:20 +00:00
</div>
_We highly recommend you take a look at the [**Hoppscotch Documentation**](https://docs.hoppscotch.io) to learn more about the app._
#### **Support**
2020-09-23 08:04:02 +00:00
2021-11-20 17:13:19 +00:00
[![Chat on Discord](https://img.shields.io/badge/chat-Discord-7289DA?logo=discord)](https://hoppscotch.io/discord) [![Chat on Telegram](https://img.shields.io/badge/chat-Telegram-2CA5E0?logo=telegram)](https://hoppscotch.io/telegram) [![Discuss on GitHub](https://img.shields.io/badge/discussions-GitHub-333333?logo=github)](https://github.com/hoppscotch/hoppscotch/discussions)
2020-09-23 08:04:02 +00:00
### **Features**
2019-08-21 13:18:20 +00:00
2020-09-23 08:04:02 +00:00
❤️ **Lightweight:** Crafted with minimalistic UI design.
2019-08-21 13:18:20 +00:00
⚡️ **Fast:** Send requests and get responses in real time.
2019-08-21 13:18:20 +00:00
🗄️ **HTTP Methods:** Request methods define the type of action you are requesting to be performed.
2020-12-21 18:26:35 +00:00
2021-08-24 08:15:11 +00:00
- `GET` - Requests retrieve resource information
- `POST` - The server creates a new entry in a database
- `PUT` - Updates an existing resource
- `PATCH` - Very similar to `PUT` but makes a partial update on a resource
- `DELETE` - Deletes resource or related component
- `HEAD` - Retrieve response headers identical to those of a GET request, but without the response body.
- `CONNECT` - Establishes a tunnel to the server identified by the target resource
- `OPTIONS` - Describe the communication options for the target resource
- `TRACE` - Performs a message loop-back test along the path to the target resource
- `<custom>` - Some APIs use custom request methods such as `LIST`. Type in your custom methods.
2020-06-12 07:39:58 +00:00
🌈 **Theming:** Customizable combinations for background, foreground, and accent colors — [customize now](https://hoppscotch.io/settings).
2019-08-27 07:32:44 +00:00
- Choose a theme: System preference, Light, Dark, and Black
- Choose accent colors: Green, Teal, Blue, Indigo, Purple, Yellow, Orange, Red, and Pink
2022-01-05 04:07:13 +00:00
- Distraction-free Zen mode
2020-06-12 07:39:58 +00:00
_Customized themes are synced with your cloud/local session._
2019-08-27 07:32:44 +00:00
🔥 **PWA:** Install as a [Progressive Web App](https://web.dev/progressive-web-apps) on your device.
2019-08-27 07:32:44 +00:00
2021-08-24 08:15:11 +00:00
- Instant loading with Service Workers
- Offline support
- Low RAM/memory and CPU usage
- Add to Home Screen
- Desktop PWA
2020-12-21 18:26:35 +00:00
2020-09-23 08:04:02 +00:00
🚀 **Request:** Retrieve response from endpoint instantly.
2019-09-04 02:05:47 +00:00
1. Choose `method`
2. Enter `URL`
3. Send
2019-08-27 07:32:44 +00:00
2021-08-24 08:15:11 +00:00
- Copy/share public "Share URL"
- Generate/copy request code snippets for 10+ languages and frameworks
- Import `cURL`
- Label requests
2020-12-21 18:26:35 +00:00
🔌 **WebSocket:** Establish full-duplex communication channels over a single TCP connection.
2022-01-05 04:07:13 +00:00
📡 **Server-Sent Events:** Receive a stream of updates from a server over an HTTP connection without resorting to polling.
🌩 **Socket.IO:** Send and Receive data with the SocketIO server.
2020-03-04 06:50:47 +00:00
2022-01-05 04:07:13 +00:00
🦟 **MQTT:** Subscribe and Publish to topics of an MQTT Broker.
2020-03-11 12:29:24 +00:00
2020-09-23 08:04:02 +00:00
🔮 **GraphQL:** GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.
2021-08-24 08:15:11 +00:00
- Set endpoint and get schema
- Multi-column docs
- Set custom request headers
- Query schema
- Get query response
2020-12-21 18:26:35 +00:00
2022-01-05 04:07:13 +00:00
🔐 **Authorization:** Allows to identify the end-user.
2019-08-27 07:32:44 +00:00
2021-08-24 08:15:11 +00:00
- None
- Basic
- Bearer Token
- OAuth 2.0
- OIDC Access Token/PKCE
2020-12-21 18:26:35 +00:00
📢 **Headers:** Describes the format the body of your request is being sent in.
2019-08-27 07:32:44 +00:00
2020-09-23 08:04:02 +00:00
📫 **Parameters:** Use request parameters to set varying parts in simulated requests.
2019-08-27 07:32:44 +00:00
2020-09-23 08:04:02 +00:00
📃 **Request Body:** Used to send and receive data via the REST API.
2019-08-27 07:32:44 +00:00
2021-08-24 08:15:11 +00:00
- Set `Content Type`
2022-01-05 04:07:13 +00:00
- FormData, JSON, and many more
2021-08-24 08:15:11 +00:00
- Toggle between key-value and RAW input parameter list
2020-12-21 18:26:35 +00:00
📮 **Response:** Contains the status line, headers, and the message/response body.
2020-12-21 18:26:35 +00:00
- Copy the response to the clipboard
- Download the response as a file
2021-08-24 08:15:11 +00:00
- View response headers
- View raw and preview HTML, image, JSON, and XML responses
**History:** Request entries are synced with your cloud/local session storage.
2020-09-23 08:04:02 +00:00
📁 **Collections:** Keep your API requests organized with collections and folders. Reuse them with a single click.
2022-01-05 04:07:13 +00:00
- Unlimited collections, folders, and requests
2021-08-24 08:15:11 +00:00
- Nested folders
2022-01-05 04:07:13 +00:00
- Export and import as a file or GitHub gist
2020-12-21 18:26:35 +00:00
_Collections are synced with your cloud/local session storage._
📜 **Pre-Request Scripts:** Snippets of code associated with a request that is executed before the request is sent.
2019-10-30 03:16:44 +00:00
2021-08-24 08:15:11 +00:00
- Set environment variables
- Include timestamp in the request headers
- Send a random alphanumeric string in the URL parameters
- Any JavaScript functions
2020-12-21 18:26:35 +00:00
👨‍👩‍👧‍👦 **Teams:** Helps you collaborate across your teams to design, develop, and test APIs faster.
- Create unlimited teams
- Create unlimited shared collections
- Create unlimited team members
- Role-based access control
- Cloud sync
- Multiple devices
👥 **Workspaces:** Organize your personal and team collections environments into workspaces. Easily switch between workspaces to manage multiple projects.
- Create unlimited workspaces
- Switch between personal and team workspaces
⌨️ **Keyboard Shortcuts:** Optimized for efficiency.
2021-08-29 07:55:01 +00:00
> **[Read our documentation on Keyboard Shortcuts](https://docs.hoppscotch.io/documentation/features/shortcuts)**
🌐 **Proxy:** Enable Proxy Mode from Settings to access blocked APIs.
2020-01-16 19:25:31 +00:00
- Hide your IP address
- Fixes [`CORS`](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (Cross-Origin Resource Sharing) issues
- Access APIs served in non-HTTPS (`http://`) endpoints
- Use your Proxy URL
_Official proxy server is hosted by Hoppscotch - **[GitHub](https://github.com/hoppscotch/proxyscotch)** - **[Privacy Policy](https://docs.hoppscotch.io/support/privacy)**._
2020-01-23 03:45:59 +00:00
🌎 **i18n:** Experience the app in your language.
2021-03-11 09:55:18 +00:00
Help us to translate Hoppscotch. Please read [`TRANSLATIONS`](TRANSLATIONS.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md) and the process for submitting pull requests to us.
☁️ **Auth + Sync:** Sign in and sync your data in real-time across all your devices.
2020-01-25 11:07:00 +00:00
**Sign in with:**
2020-06-12 07:39:58 +00:00
2021-08-24 08:15:11 +00:00
- GitHub
- Google
2022-03-05 13:23:49 +00:00
- Microsoft
2021-08-24 08:15:11 +00:00
- Email
- SSO (Single Sign-On)[^EE]
2020-01-25 11:07:00 +00:00
**🔄 Synchronize your data:** Handoff to continue tasks on your other devices.
2020-06-12 07:39:58 +00:00
- Workspaces
2021-08-24 08:15:11 +00:00
- History
- Collections
- Environments
- Settings
2020-01-25 11:07:00 +00:00
**Post-Request Tests:** Write tests associated with a request that is executed after the request's response.
2020-01-28 01:49:08 +00:00
2021-08-24 08:15:11 +00:00
- Check the status code as an integer
- Filter response headers
- Parse the response data
2022-03-05 13:23:49 +00:00
- Set environment variables
- Write JavaScript code
2020-12-21 18:26:35 +00:00
🌱 **Environments:** Environment variables allow you to store and reuse values in your requests and scripts.
2020-03-04 10:38:12 +00:00
2021-08-24 08:15:11 +00:00
- Unlimited environments and variables
2022-01-05 04:07:13 +00:00
- Initialize through the pre-request script
2021-08-24 08:15:11 +00:00
- Export as / import from GitHub gist
2020-12-21 18:26:35 +00:00
<details>
2021-01-23 14:13:11 +00:00
<summary><i>Use-cases</i></summary>
2020-12-21 18:26:35 +00:00
---
2020-06-12 07:39:58 +00:00
- By storing a value in a variable, you can reference it throughout your request section
- If you need to update the value, you only have to change it in one place
- Using variables increases your ability to work efficiently and minimizes the likelihood of error
2020-03-04 10:38:12 +00:00
2020-12-21 18:26:35 +00:00
---
</details>
2021-09-02 03:34:02 +00:00
🚚 **Bulk Edit:** Edit key-value pairs in bulk.
- Entries are separated by newline
2021-09-02 15:03:34 +00:00
- Keys and values are separated by `:`
2022-02-22 13:29:11 +00:00
- Prepend `#` to any row you want to add but keep disabled
2021-09-02 03:34:02 +00:00
🎛️ **Admin dashboard:** Manage your team and invite members.
- Insights
- Manage users
- Manage teams
📦 **Add-ons:** Official add-ons for hoppscotch.
- **[Hoppscotch CLI](https://github.com/hoppscotch/hoppscotch/tree/main/packages/hoppscotch-cli)** - Command-line interface for Hoppscotch.
- **[Proxy](https://github.com/hoppscotch/proxyscotch)** - A simple proxy server created for Hoppscotch.
- **[Browser Extensions](https://github.com/hoppscotch/hoppscotch-extension)** - Browser extensions that enhance your Hoppscotch experience.
[![Firefox](https://raw.github.com/alrra/browser-logos/master/src/firefox/firefox_16x16.png) **Firefox**](https://addons.mozilla.org/en-US/firefox/addon/hoppscotch) &nbsp;|&nbsp; [![Chrome](https://raw.github.com/alrra/browser-logos/master/src/chrome/chrome_16x16.png) **Chrome**](https://chrome.google.com/webstore/detail/hoppscotch-extension-for-c/amknoiejhlmhancpahfcfcfhllgkpbld)
> **Extensions fix `CORS` issues.**
_Add-ons are developed and maintained under **[Hoppscotch Organization](https://github.com/hoppscotch)**._
**For a complete list of features, please read our [documentation](https://docs.hoppscotch.io).**
2020-09-23 08:04:02 +00:00
## **Demo**
2019-08-21 13:18:20 +00:00
2020-08-13 11:20:02 +00:00
[hoppscotch.io](https://hoppscotch.io)
2020-09-23 08:04:02 +00:00
## **Usage**
2022-01-05 04:07:13 +00:00
1. Provide your API endpoint in the URL field
2022-03-23 07:59:55 +00:00
2. Click "Send" to simulate the request
2022-01-05 04:07:13 +00:00
3. View the response
2019-08-21 13:18:20 +00:00
2020-09-23 08:04:02 +00:00
## **Developing**
Follow our [self-hosting documentation](https://docs.hoppscotch.io/documentation/self-host/getting-started) to get started with the development environment.
2020-09-23 08:04:02 +00:00
## **Contributing**
2019-08-21 13:18:20 +00:00
2020-09-06 08:56:54 +00:00
Please contribute using [GitHub Flow](https://guides.github.com/introduction/flow). Create a branch, add commits, and [open a pull request](https://github.com/hoppscotch/hoppscotch/compare).
2020-06-25 02:20:23 +00:00
Please read [`CONTRIBUTING`](CONTRIBUTING.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md), and the process for submitting pull requests to us.
2019-08-21 13:18:20 +00:00
2020-09-23 08:04:02 +00:00
## **Continuous Integration**
2019-08-21 13:18:20 +00:00
We use [GitHub Actions](https://github.com/features/actions) for continuous integration. Check out our [build workflows](https://github.com/hoppscotch/hoppscotch/actions).
2019-08-21 13:18:20 +00:00
2020-09-23 08:04:02 +00:00
## **Changelog**
2019-08-21 13:18:20 +00:00
2020-06-25 02:20:23 +00:00
See the [`CHANGELOG`](CHANGELOG.md) file for details.
2019-08-21 13:18:20 +00:00
2020-09-23 08:04:02 +00:00
## **Authors**
2019-09-26 06:35:51 +00:00
This project owes its existence to the collective efforts of all those who contribute — [contribute now](CONTRIBUTING.md).
2020-03-03 01:32:27 +00:00
2021-06-30 14:56:11 +00:00
<div align="center">
<a href="https://github.com/hoppscotch/hoppscotch/graphs/contributors">
<img src="https://opencollective.com/hoppscotch/contributors.svg?width=840&button=false"
alt="Contributors"
width="100%" />
</a>
</div>
2020-03-03 01:32:27 +00:00
2020-09-23 08:04:02 +00:00
## **License**
2019-08-21 13:18:20 +00:00
This project is licensed under the [MIT License](https://opensource.org/licenses/MIT) — see the [`LICENSE`](LICENSE) file for details.
[^EE]: Enterprise edition feature. [Learn more](https://docs.hoppscotch.io/documentation/self-host/getting-started).