Hoppscotch

开放源码的 API 开发生态系统。可自行托管,免费使用。「Open source API development ecosystem https://hoppscotch.io/. Self-Hostable and free to use」

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)

Overview

Name With Ownerhoppscotch/hoppscotch
Primary LanguageTypeScript
Program languageJavaScript (Language Count: 9)
PlatformLinux, Mac, Windows, Docker
License:MIT License
Release Count38
Last Release Name2024.3.0 (Posted on )
First Release Namev0.1.0 (Posted on )
Created At2019-08-21 13:15:24
Pushed At2024-04-19 20:26:58
Last Commit At
Stargazers Count60k
Watchers Count479
Fork Count4.2k
Commits Count5.2k
Has Issues Enabled
Issues Count1405
Issue Open Count304
Pull Requests Count1406
Pull Requests Open Count28
Pull Requests Close Count835
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

contributions welcome Website Tests Tweet

We highly recommend you take a look at the Hoppscotch Documentation to learn more about the app.

Support

Chat on Discord Chat on Telegram Discuss on GitHub

Features

❤️ Lightweight: Crafted with minimalistic UI design.

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

🗄️ HTTP Methods: Request methods define the type of action you are requesting to be performed.

  • 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.

🌈 Theming: Customizable combinations for background, foreground, and accent colors — customize now.

  • Choose a theme: System preference, Light, Dark, and Black
  • Choose accent colors: Green, Teal, Blue, Indigo, Purple, Yellow, Orange, Red, and Pink
  • Distraction-free Zen mode

Customized themes are synced with your cloud/local session.

🔥 PWA: Install as a Progressive Web App 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.

  1. Choose method
  2. Enter URL
  3. 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 an HTTP connection without resorting to polling.

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

🦟 MQTT: Subscribe and Publish to topics of an 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 schema
  • Multi-column docs
  • Set custom request headers
  • Query schema
  • Get query response

🔐 Authorization: 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 in.

📫 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
  • FormData, JSON, and many more
  • Toggle between key-value and RAW input parameter list

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

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

History: Request entries are synced with your cloud/local session storage.

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

  • Unlimited collections, folders, and requests
  • Nested folders
  • Export and import as a file or GitHub gist

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.

  • Set environment variables
  • Include timestamp in the request headers
  • Send a random alphanumeric string in the URL parameters
  • Any JavaScript functions

👨‍👩‍👧‍👦 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.

Read our documentation on Keyboard Shortcuts

🌐 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://) endpoints
  • Use your Proxy URL

Official proxy server is hosted by Hoppscotch - GitHub - Privacy Policy.

🌎 i18n: Experience the app in your language.

Help us to translate Hoppscotch. Please read TRANSLATIONS for details on our CODE OF CONDUCT and the process for submitting pull requests to us.

☁️ Auth + Sync: Sign in and sync your data in real-time across all your devices.

Sign in with:

  • GitHub
  • Google
  • Microsoft
  • Email
  • SSO (Single Sign-On)[^EE]

🔄 Synchronize your data: Handoff to continue tasks on your other devices.

  • Workspaces
  • History
  • Collections
  • Environments
  • Settings

Post-Request Tests: Write tests associated with a request that is executed after the request's response.

  • Check the status code as an integer
  • Filter response headers
  • Parse the response data
  • Set environment variables
  • Write JavaScript code

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

  • Unlimited environments and variables
  • Initialize through the 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

🚚 Bulk Edit: Edit key-value pairs in bulk.

  • Entries are separated by newline
  • Keys and values are separated by :
  • Prepend # to any row you want to add but keep disabled

🎛️ Admin dashboard: Manage your team and invite members.

  • Insights
  • Manage users
  • Manage teams

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

Add-ons are developed and maintained under Hoppscotch Organization.

For a complete list of features, please read our documentation.

Demo

hoppscotch.io

Usage

  1. Provide your API endpoint in the URL field
  2. Click "Send" to simulate the request
  3. View the response

Developing

Follow our self-hosting documentation to get started with the development environment.

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 GitHub Actions for continuous integration. Check out our build workflows.

Changelog

See the CHANGELOG file for details.

Authors

This project owes its existence to the collective efforts of all those who contribute — contribute now.

License

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

[^EE]: Enterprise edition feature. Learn more.

To the top