Hoppscotch

开放源码的 API 开发生态系统。「Open source API development ecosystem https://hoppscotch.io/.」

Github星跟蹤圖

Hoppscotch -- 开源的 API 开发生态系统

帮助你更快地创建请求,节省宝贵的开发时间。

特点

采用简约的 UI 设计。

快速。实时发送请求和获取/复制响应。

方法

  • GET -- 请求检索资源信息
  • HEAD -- 检索与GET请求相同的响应头,但没有响应主体。
  • POST -- 服务器在数据库中创建一个新条目。
  • PUT -- 更新现有资源
  • DELETE -- 删除资源或相关组件。
  • CONNECT -- 建立一条通往目标资源识别的服务器的隧道。
  • OPTIONS -- 描述目标资源的通信选项。
  • TRACE -- 沿着通往目标资源的路径执行消息回环测试。
  • PATCH -- 与PUT非常相似,但会对资源进行部分更新。
  • <custom> -- 一些API使用自定义的请求方法,如LIST。键入你的自定义方法。

让它成为你的。可自定义背景、前景和重点颜色的组合。

Theming:现在就定制。

  • 选择主题。系统、浅色、深色(默认)和黑色
  • 选择重点颜色:蓝色、绿色(默认)、青色、紫色、橙色、粉色、红色和黄色。
  • 切换多色标题
  • 切换自动滚动到响应
  • 自定义主题与本地会话存储同步。

PWA:作为 PWA 安装在您的设备上。

特性

  • 瞬间装载服务 Workers
  • 离线支持
  • RAM / 内存和 CPU 使用率低
  • 添加到主屏幕
  • 台式机 PWA

请求:即时从端点获取响应。

  • 选择方法
  • 输入网址
  • 发送

特点

  • 复制/共享公共 "共享网址"
  • 为 JavaScript XHR、Fetch 和 cURL 生成/复制请求代码。
  • 导入 cURL
  • 标签请求

WebSocket:通过一个 TCP 连接建立全双工通信通道。

  • 发送和接收数据
  • 基本和承载令牌认证

服务器发送事件:通过 HTTP 连接接收来自服务器的更新流,而无需进行轮询。

Socket.IO:用 SocketIO 服务器发送和接收数据。

MQTT:订阅和发布 MQTT Broker 的主题。

GraphQL:GraphQL 是一种 API 的查询语言,也是一个用现有数据来完成这些查询的运行时。

  • 设置端点和获取模式
  • 多栏文档
  • 设置自定义请求标题
  • 查询模式
  • 获取查询回复

认证:允许识别终端用户。

种类

  • None
  • Basic
  • Bearer Token
  • OAuth 2.0
  • OIDC Access Token/PKCE

Headers:描述你的请求正文的发送格式。

参数:使用请求参数来设置模拟请求中的不同部分。

请求主体:用于通过 REST API 发送和接收数据。

选项:

  • 设置内容类型(Content Type)
  • 添加或删除参数列表
  • 在键值和 RAW 输入参数列表之间切换。

Responses:包含状态行、标题和消息/回复体。包含状态行、标题和消息/回复体。

  • 将回复复制到剪贴板
  • 下载回复文件
  • 查看 HTML 回复的预览

历史记录(History):请求条目与云端/本地会话存储同步,一键还原。

集合(Collections):用集合和文件夹来组织你的 API 请求。只需一键即可重复使用它们。

集合与云/本地会话存储同步。

代理:从设置中启用代理模式来访问被封锁的 API。

功能介绍

  • 隐藏您的IP地址
  • 修复CORS(跨原点资源共享)问题。
  • 访问以非 HTTPS 方式提供的 API (http://)
  • 使用自定义代理 URL

官方 Hoppscotch 手机版登录代理是由阿波罗软件公司主办的 -- 隐私政策

Pre-Request Scripts β:与请求相关联的代码片段,在请求发送前执行。

用例

  • 在请求头中加入时间戳。
  • 在 URL 参数中发送一个随机的字母数字字符串。

API 文档。轻松、快速地创建和共享动态 API 文档。

使用方法

  • 将您的请求添加到收藏和文件夹
  • 导出集合,并与您的团队其他成员轻松分享您的 API
  • 导入集合并随时随地生成文档

键盘快捷键。优化了效率。

快捷键 WIki

i18n β:用您自己的语言体验该应用程序

  1. 向下滚动到页脚
  2. 点击 "选择语言" 图标按钮
  3. 从菜单中选择您的语言

请记住:不是所有源语言和目标语言的组合都能得到翻译。并非所有的源语言和目标语言组合都可以翻译。

为了给世界各地的用户提供本地化的体验,你可以添加自己的翻译。

所有 i18n 的贡献只欢迎 i18n 分支!

Add-ons。hoppscotch 的官方附加组件。

  • Proxy -- 一个为 Hoppscotch 创建的简单代理服务器。
  • CLI β -- Hoppscotch 的 CLI 解决方案。
  • Browser Extensions -- 简化访问 Hoppscotch 的浏览器扩展。 Firefox | Chrome
    扩展修复了 CORS 问题。

附加组件由 官方 Hoppscotch 组织 开发和维护。

云端认证+同步。实时登录和同步。

登录

  • 谷歌
  • GitHub

同步

  • 历史
  • 收藏
  • 环境
  • 笔记

请求后测试 β: 编写与请求相关的测试,在请求响应后执行。

用例

  • 检查状态码为整数
  • 过滤器响应标题
  • 解析响应数据

笔记 。即时记下笔记,任务或任何你觉得像他们来到你的脑海里。

笔记只对登录用户开放

环境。环境变量允许你在你的请求和脚本中存储和重用值。

使用案例

  • 通过在变量中存储一个值,你可以在整个请求部分引用它
  • 如果你需要更新值,你只需要在一个地方改变它。
  • 使用变量可以提高你的工作效率,并将出错的可能性降到最低。

要了解更多,请查看 Hoppscotch Wiki。

演示

hoppscotch.io

使用方法

  • 选择方法
  • 输入网址
  • 发送请求
  • 获得回复

构建自

开发

  1. 用你自己的密钥更新版本库根目录下的 .env.example,并将其重命名为 .env.

示例密钥只适用于 生产版本

基于浏览器的开发环境

Open in Gitpod

本地开发环境

  1. 用 git 克隆这个 repo
  2. 在你克隆的目录下运行 npm install 来安装依赖项(可能是 hoppscotch)。
  3. npm run dev 启动开发服务器。
  4. 在浏览器中访问 http://localhost:3000,打开开发站点。

Docker 编译

  1. 用 git 克隆这个 repo
  2. 运行 docker-compose up
  3. 在浏览器中访问 http://localhost:3000,打开开发网站。

Docker

#pull
docker pull liyasthomas/postwoman
#build
docker build -t postwoman:latest .
#run
docker run -p 3000:3000 postwoman:latest

发布

  1. 用 git 克隆这个 repo
  2. 在你克隆的目录下运行 npm install 来安装依赖项(可能是hoppscotch)。
  3. npm run build 来构建发布文件。
  4. ./dist 中找到构建的项目。

贡献

请使用 GitHub Flow 进行贡献。创建一个分支,添加提交,然后打开一个拉取请求

请阅读 CONTRIBUTING 了解我们的行为准则以及向我们提交拉取请求的流程。

持续集成

我们使用 Travis CI 进行持续集成。查看我们的 Travis CI 状态

版本管理

本项目由 Liyas Thomas 使用语义版本规范开发。有关可用的版本,请参见本版本库的发布版本

变更日志

详情请参见 CHANGELOG 文件。

作者

主要开发人员

测试和调试

请看参与本项目的贡献者名单。

谢谢你

财务捐助方

成为财务捐助人,帮助我们维持我们的社区[支持]。

许可证

本项目采用 MIT 授权许可 -- 详见 LICENSE 文件。

鸣谢

  • 向使用了代码的人致敬。
  • 灵感:


(The first version translated by vz on 2020.10.01)

主要指標

概覽
名稱與所有者hoppscotch/hoppscotch
主編程語言TypeScript
編程語言JavaScript (語言數: 12)
平台Linux, Mac, Windows, Docker
許可證MIT License
所有者活动
創建於2019-08-21 13:15:24
推送於2025-04-17 15:58:38
最后一次提交
發布數71
最新版本名稱2025.3.2 (發布於 )
第一版名稱v0.1.0 (發布於 )
用户参与
星數71.2k
關注者數496
派生數4.9k
提交數5.7k
已啟用問題?
問題數1903
打開的問題數478
拉請求數1738
打開的拉請求數49
關閉的拉請求數874
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

Website Travis Build Status GitHub release Tweet

Contact

Chat on Telegram Chat on Discord

Support

Sponsor on GitHub Contribute on Open Collective Join on Patreon Donate on PayPal



Features

❤️ Lightweight: Crafted with minimalistic UI design.

⚡️ Fast: Send requests and get/copy responses in real-time.


  • GET - Requests retrieve resource information
  • HEAD - Retrieve response headers identical to those of a GET request, but without the response body.
  • POST - The server creates a new entry in a database
  • PUT - Updates an existing resource
  • DELETE - Deletes resource or related component
  • 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
  • PATCH - Very similar to PUT but makes a partial update on a resource
  • <custom> - Some APIs use custom request methods such as LIST. Type in your custom methods.

🌈 Make it yours: Customizable combinations for background, foreground and accent colors. Customize now ✨


  • Choose theme: System, Light, Dark (default) and Black
  • Choose accent color: Blue, Green (default), Teal, Purple, Orange, Pink, Red, and Yellow
  • Toggle multi-colored headings
  • Toggle auto-scroll to response

Customized themes are synced with local session storage

🔥 PWA: Install as a PWA on your device.


  • Instant loading with Service Workers
  • Offline support
  • Low RAM/memory and CPU usage
  • Add to Home Screen
  • Desktop PWA

🚀 Request: Retrieve response from endpoint instantly.

  • Choose method
  • Enter URL
  • Send

  • Copy/share public "Share URL"
  • Generate/copy request code snippets for 10+ languages and frameworks
  • Import cURL
  • Label requests

🔌 WebSocket: Establish full-duplex communication channels over a single TCP connection.

📡 Server Sent Events: Receive a stream of updates from a server over a HTTP connection without resorting to polling.

🌩 Socket.IO: Send and Receive data with SocketIO server.

🦟 MQTT: Subscribe and Publish to topics of a MQTT Broker.

🔮 GraphQL: GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.


  • Set endpoint and get schemas
  • Multi-column docs
  • Set custom request headers
  • Query schema
  • Get query response

🔐 Authentication: Allows to identify the end user.


  • None
  • Basic
  • Bearer Token
  • OAuth 2.0
  • OIDC Access Token/PKCE

📢 Headers: Describes the format the body of your request is being sent as.

📫 Parameters: Use request parameters to set varying parts in simulated requests.

📃 Request Body: Used to send and receive data via the REST API.


  • Set Content Type
  • Add or remove Parameter list
  • Toggle between key-value and RAW input parameter list

👋 Response: Contains the status line, headers and the message/response body.


  • Copy response to clipboard
  • Download response as a file
  • View response headers
  • View raw and preview of HTML, image, JSON, XML responses

History: Request entries are synced with cloud / local session storage to restore with a single click.

📁 Collections: Keep your API requests organized with collections and folders. Reuse them with a single click.


  • Unlimited collections, folders and requests
  • Nested folders
  • Export as / import from GitHub gist

Collections are synced with cloud / local session storage

🌐 Proxy: Enable Proxy Mode from Settings to access blocked APIs.


  • Hide your IP address
  • Fixes CORS (Cross Origin Resource Sharing) issues
  • Access APIs served in non-HTTPS (http://)
  • Use custom Proxy URL

Official Hoppscotch Proxy is hosted by Apollo Software - Privacy Policy

📜 Pre-Request Scripts β: Snippets of code associated with a request that are executed before the request is sent.


  • Initialize environment variables
  • Include timestamp in the request headers
  • Send a random alphanumeric string in the URL parameters

📄 API Documentation: Create and share dynamic API documentation easily, quickly.


  1. Add your requests to Collections and Folders
  2. Export Collections and easily share your APIs with the rest of your team
  3. Import Collections and Generate Documentation on-the-go

⌨️ Keyboard Shortcuts: Optimized for efficiency.

Shortcuts WIki

🌎 i18n β: Experience the app in your own language.


  1. Scroll down to the footer
  2. Click "Choose Language" icon button
  3. Select your language from the menu

Keep in mind: Translations aren't available for all source and target language combinations

To provide a localized experience for users around the world, you can add you own translations.

All i18n contributions are welcome to i18n branch only!

📦 Add-ons: Official add-ons for hoppscotch.

  • Proxy - A simple proxy server created for Hoppscotch

  • CLI β - A CLI solution for Hoppscotch

  • Browser Extensions - Browser extensions that simplifies access to Hoppscotch

    Firefox Firefox  |  Chrome Chrome

    Extensions fixes CORS issues.

Add-ons are developed and maintained under Official Hoppscotch Organization.

☁️ Auth + Sync: Sign in and sync in real-time.

Sign in with

  • Google
  • GitHub

Sync

  • History
  • Collections
  • Environments
  • Notes

Post-Request Tests β: Write tests associated with a request that are executed after the request response.


  • Check the status code as an integer
  • Filter response headers
  • Parse the response data

📝 Notes : Instantly jot down notes, tasks or whatever you feel like as they come to your mind.

Notes are only available for signed-in users

🌱 Environments : Environment variables allow you to store and reuse values in your requests and scripts.


  • Unlimited environments and variables
  • Initialize through pre-request script
  • Export as / import from GitHub gist


  • 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

To find out more, please check out Hoppscotch Wiki.

Demo

hoppscotch.io

Usage

  1. Choose method
  2. Enter URL
  3. Send request
  4. Get response

Built with

Developing

  1. Update .env.example file found in repository's root directory with your own keys and rename it to .env.

Sample keys only works with the production build.

Browser based development environment

Open in Gitpod

Local development environment

  1. Clone this repo with git.
  2. Install dependencies by running npm install within the directory that you cloned (probably hoppscotch).
  3. Start the development server with npm run dev.
  4. Open development site by going to http://localhost:3000 in your browser.

Docker compose

  1. Clone this repo with git.
  2. Run docker-compose up
  3. Open development site by going to http://localhost:3000 in your browser.

Docker

#pull
docker pull hoppscotch/hoppscotch

#build
docker build -t hoppscotch:latest .

#run
docker run -p 3000:3000 hoppscotch:latest

#pull
docker pull liyasthomas/postwoman

#build
docker build -t postwoman:latest .

#run
docker run -p 3000:3000 postwoman:latest

Releasing

  1. Clone this repo with git.
  2. Install dependencies by running npm install within the directory that you cloned (probably hoppscotch).
  3. Build the release files with npm run generate.
  4. Find the built project in ./dist.

Contributing

Please contribute using GitHub Flow. Create a branch, add commits, and open a pull request.

Please read CONTRIBUTING for details on our CODE OF CONDUCT, and the process for submitting pull requests to us.

Continuous Integration

We use Travis CI for continuous integration. Check out our Travis CI Status.

Versioning

This project is developed by Liyas Thomas using the Semantic Versioning specification. For the versions available, see the releases on this repository.

Changelog

See the CHANGELOG file for details.

Authors

Lead Developers

Testing and Debugging

Collaborators

See the list of contributors who participated in this project.

Thanks

Financial Contributors

Become a financial contributor and help us sustain our community [Support].

GitHub Sponsors

Open Collective

Code Contributors

This project exists thanks to all the people who contribute [Contribute].

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

  • Hat tip to anyone whose code was used
  • Inspirations:

Badges