告別 Postman!這款極簡網頁版 API 調試神器,真的驚艷到我
在現代微服務與前后端分離的大潮中,開發者的日常幾乎離不開 API 調試。 然而,Postman、Insomnia 等傳統工具雖然功能強大,卻逐漸暴露出問題——啟動慢、依賴重、隱私上傳風險高。
這時,一款名為 WebCurl 的開源項目橫空出世。 它不依賴數據庫、不依賴框架、無需安裝客戶端,只需瀏覽器即可完成一切 HTTP 請求調試。 一句話概括:
“WebCurl 不是下一個 Postman,而是 API 調試工具的下一個時代。”
項目簡介:極簡主義的 Web API 調試神器
項目路徑:/usr/local/webcurl 包前綴:com.icoderoad.webcurl
WebCurl 是一款以“極簡 + 高性能”為核心理念的 網頁版 API 調試工具,由 Go 標準庫直接驅動,零依賴、跨平臺。 整個項目僅由兩個文件構成:
/usr/local/webcurl/index.html—— 前端交互界面/usr/local/webcurl/main.go—— 后端請求代理邏輯
這意味著你無需數據庫、無需外部依賴,直接運行即可。
技術架構:一個14MB的跨平臺全能體
WebCurl 的技術棧貫徹了“Less is More(少即是多)”理念:
模塊 | 技術棧 | 特點 |
前端 | 原生 HTML + JS + CSS | 無依賴、極快加載、輕量純凈 |
后端 | Golang 標準庫 | 無第三方依賴、極高安全性 |
構建產物 | 單一二進制文件 | 包含前端頁面,一次編譯,到處運行 |
運行時產物大小僅約 14MB, 即可在 Linux / Windows / macOS / ARM 信創設備上一鍵啟動。
功能亮點:簡約外表下的專業實力
瀏覽器即 Postman
無需下載客戶端,打開瀏覽器即可調試 API; 支持請求歷史、變量替換、接口集合、導入導出等功能。
HTTP 請求轉發引擎
通過 /api/forward 接口實現請求參數的代理轉發, 突破跨域限制,支持 HTTP/HTTPS 雙協議。
豐富的請求體支持
支持 form-data(含文件上傳)、x-www-form-urlencoded、JSON、XML、text、binary 等多格式請求。
可定制請求行為
- 自定義請求頭
- 文件上傳與響應下載
- 重試、超時、重定向控制
- SSL 校驗開關
EchoServer 調試服務
支持請求自動回顯、響應延遲模擬、文件下載模式、流式 SSE/WebSocket 調試等。 內置恐慌恢復機制,防止服務崩潰。
靜態文件服務器功能
WebCurl 還能充當迷你版 Nginx,支持 HTML、JS、CSS、圖片、音視頻等靜態資源服務。 內置 MIME 類型識別與路徑安全控制,防御目錄遍歷攻擊。
常用開發工具集
開發者日常必備的小工具一應俱全:
- JWT 解析
- UUID 生成
- 時間戳與日期轉換
- Base64 編解碼
- 隨機 Token 生成
快速上手:從編譯到啟動僅需三步
項目結構示例:
/usr/local/webcurl/
├── index.html
└── main.go① 編譯項目
# 進入源碼目錄
cd /usr/local/webcurl
# 使用 Go 構建可執行文件
go build -o WebCurl main.go(或直接運行提供的構建腳本)
sh build.sh② 啟動服務
# 默認監聽 0.0.0.0:4444 并內嵌前端頁面
./WebCurl③ 訪問頁面
http://localhost:4444打開瀏覽器即可進入 WebCurl 的極簡界面。
命令行參數配置:自由掌控運行模式
WebCurl 提供多種 CLI 參數:
參數 | 含義 |
| 指定端口(默認 4444) |
| 設置靜態文件目錄 |
| 啟用 HTTPS 模式 |
| 指定 SSL 證書路徑 |
例如,啟用 HTTPS 并監聽 9000 端口:
./WebCurl -p 9000 -s -c /path/to/cert核心代碼結構優化版
/usr/local/webcurl/main.go
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
// 靜態頁面服務
http.Handle("/", http.FileServer(http.Dir("./")))
// API 轉發接口
http.HandleFunc("/api/forward", func(w http.ResponseWriter, r *http.Request) {
targetURL := r.FormValue("url")
if targetURL == "" {
http.Error(w, "缺少目標URL參數", http.StatusBadRequest)
return
}
req, err := http.NewRequest(r.Method, targetURL, r.Body)
if err != nil {
http.Error(w, fmt.Sprintf("創建請求失敗: %v", err), http.StatusInternalServerError)
return
}
// 拷貝請求頭
for k, v := range r.Header {
req.Header[k] = v
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
http.Error(w, fmt.Sprintf("請求目標URL失敗: %v", err), http.StatusBadGateway)
return
}
defer resp.Body.Close()
// 返回響應
for k, v := range resp.Header {
w.Header()[k] = v
}
w.WriteHeader(resp.StatusCode)
io.Copy(w, resp.Body)
})
// 啟動服務
port := ":4444"
fmt.Println("?? WebCurl 已啟動,訪問地址:http://localhost" + port)
if err := http.ListenAndServe(port, nil); err != nil {
fmt.Printf("? 啟動失敗: %v\n", err)
os.Exit(1)
}
}界面預覽
打開瀏覽器訪問 http://localhost:4444,即可看到極簡風格的 API 調試界面。 簡潔的操作區、可視化的請求響應面板, 讓你在不安裝任何客戶端的前提下完成專業級調試。
圖片
結語:輕量、純凈、可靠——WebCurl的開發哲學
在這個軟件依賴泛濫的時代,WebCurl 的出現無疑是一股清流。 它用最少的文件、最簡單的結構,解決了開發者在 API 調試中的最大痛點:
- 不裝軟件
- 不傳數據
- 不受平臺限制
對于內網、信創、離線、容器化等復雜環境,WebCurl 都能輕松部署。 如果說 Postman 是一臺“瑞士軍刀”, 那么 WebCurl 則更像一支“鋒利的小手術刀”——精準、高效、輕盈。
開源地址































