DEV Community

Gophernment
Gophernment

Posted on

Bruno — API Client แบบ Git-Native ที่เก็บทุกอย่างเป็นไฟล์

Bruno — API Client แบบ Git-Native ที่เก็บทุกอย่างเป็นไฟล์

เวลา dev team ต้องเทส API — เครื่องมือที่ทุกคนนึกถึงคือ Postman กับ Insomnia

แต่ปัญหาคลาสสิกที่เจอกันแทบทุกทีม:

"Postman collection อยู่ไหน?" — "ใน account ผมไง"
"ขอ invite หน่อย" — "เดี๋ยวส่ง link ให้... เอ๊ะ หมด free tier แล้ว"

นี่คือ pain point ที่ทำให้คนจำนวนมากมองหาเครื่องมือใหม่ — และหนึ่งในนั้นคือ Bruno


Bruno คืออะไร

Bruno เป็น API client แบบ desktop app (มีทั้ง macOS, Linux, Windows) ที่มีแนวคิดแตกต่างจาก Postman โดยสิ้นเชิง:

Postman Bruno
เก็บข้อมูลที่ไหน Cloud account ไฟล์ใน project (Git repo)
ต้อง login ไหม ✅ ต้อง ❌ ไม่ต้อง
Collection format JSON (binary-ish) Plain text (Bru files)
Collaborate ผ่าน Postman cloud ผ่าน Git (PR, diff, review)
Open source ✅ (GitHub: 45K+ stars)
Offline ไม่ค่อยได้ ✅ ทำงานออฟไลน์ได้เต็มที่

หัวใจของ Bruno คือ "API Client ไม่ใช่ Platform" — มันคือเครื่องมือธรรมดาที่เก็บข้อมูลเป็นไฟล์ — เหมือนที่ dev ทั่วไปเก็บโค้ด


จุดเด่น

1. Collection คือไฟล์ — เก็บใน Git ได้

my-project/
├── src/
├── bruno/
│   ├── users/
│   │   ├── GET users.bru
│   │   ├── POST create user.bru
│   │   └── DELETE user.bru
│   ├── auth/
│   │   └── POST login.bru
│   └── bruno.json
└── .git/
Enter fullscreen mode Exit fullscreen mode

ทุก API request เป็นไฟล์ .bru — plain text — diff ได้, PR review ได้, merge ได้ — เหมือนโค้ด

meta {
  name: GET users
  type: http
  seq: 1
}

get {
  url: https://api.example.com/users
  body: none
  auth: bearer
}
Enter fullscreen mode Exit fullscreen mode

2. ไม่มี Cloud — ข้อมูลอยู่กับคุณ

Bruno ไม่เคยส่งข้อมูลขึ้น server — ทุกอย่างอยู่บนเครื่องคุณ ทั้ง request, response, environment variables

สำหรับทีมที่ทำงานกับข้อมูล sensitive (banking, healthcare, government) — ข้อนี้สำคัญมาก

3. ใช้ Git เป็น Collaboration Tool

แทนที่จะ "invite teammate เข้า workspace" (แบบ Postman) — คุณแค่:

git add bruno/
git commit -m "add user API collection"
git push
Enter fullscreen mode Exit fullscreen mode

เพื่อน git pull → เปิด Bruno → เห็น collection เดียวกันทันที

4. Environment Variables — แบบเดียวกับที่ dev ใช้

# environments/production.bru
vars {
  base_url: https://api.production.com
  api_key: {{PROD_API_KEY}}
}
Enter fullscreen mode Exit fullscreen mode

เปลี่ยน environment ด้วยการคลิก — ไม่ต้องแก้ request ทีละตัว

5. Scripting — Pre/Post Request

// Pre-request script
const now = new Date().toISOString();
bru.setVar("timestamp", now);
Enter fullscreen mode Exit fullscreen mode
// Post-response script — test assertion
bru.assert(bru.getVar("status") === 200);
bru.assert(bru.getVar("body").length > 0);
Enter fullscreen mode Exit fullscreen mode

ใช้ JavaScript แบบเดียวกับที่ dev ใช้อยู่แล้ว


วิธีใช้ — เริ่มใน 2 นาที

# ติดตั้ง
# macOS
brew install --cask bruno

# Linux (AppImage หรือ Snap)
sudo snap install bruno

# Windows — Download จาก usebruno.com
Enter fullscreen mode Exit fullscreen mode

1. สร้าง Collection

File → New Collection → ตั้งชื่อ → เลือกโฟลเดอร์
Enter fullscreen mode Exit fullscreen mode

Bruno จะสร้างโฟลเดอร์ที่มี bruno.json ให้

2. สร้าง Request

คลิกขวาที่ Collection → New Request
Enter fullscreen mode Exit fullscreen mode

กรอก:

  • Method: GET, POST, PUT, DELETE...
  • URL: https://api.example.com/users
  • Headers: Content-Type: application/json
  • Body: JSON body (ถ้าเป็น POST/PUT)

3. กด Send

Ctrl+Enter (หรือ ⌘+Enter)
Enter fullscreen mode Exit fullscreen mode

เห็น response ทันที — status code, headers, body, response time

4. จัดการ Environment

สร้าง environment → ใส่ variables → เลือก environment จาก dropdown
Enter fullscreen mode Exit fullscreen mode

เทียบกับเครื่องมืออื่น

Bruno Postman Insomnia Hoppscotch Thunder Client
GitHub Stars 45K+ — (closed) 35K+ 65K+ VS Code ext
Open Source ✅ (บางส่วน)
Cloud-free ⚠️ ✅ (self-host)
Git-native ✅ (VS Code)
Desktop App ❌ (web) ❌ (VS Code)
Plain text format ✅ (.bru) ❌ (JSON binary) ❌ (JSON) ❌ (JSON)
ราคา ฟรี + Gold ($6/เดือน) ฟรี + $12/เดือน ฟรี + $8/เดือน ฟรี + $8/เดือน ฟรี

จัดอันดับความนิยม (GitHub Stars — กรกฎาคม 2026)

อันดับ เครื่องมือ Stars Type
🥇 Hoppscotch 65K+ Web-based, self-host ได้
🥈 Bruno 45K+ Desktop, Git-native
🥉 Insomnia 35K+ Desktop, มี cloud option
4 HTTPie 34K+ CLI + Desktop
5 Postman — (closed source) Desktop + Web

💡 Postman ไม่มี GitHub repo เพราะเป็น closed source — วัดกันที่ user base: Postman ~30M users, Bruno ~2M downloads, Insomnia ~5M downloads


Bruno เหมาะกับใคร

คุณ... ลอง Bruno ไหม?
ทำโปรเจกต์ที่ใช้ Git อยู่แล้ว ✅ เก็บ collection ใน repo เดียวกัน
ทำงานกับข้อมูล sensitive ✅ ทุกอย่าง local — ไม่มี cloud
เบื่อ Postman จอแดง "upgrade to pro" ✅ ฟรี — จ่ายเฉพาะ enterprise features
อยากให้ทีม PR review API collection ✅ diff ได้, review ได้
ต้องการ collaboration แบบ real-time ⚠️ ยังไม่มี — ต้องใช้ Git workflow
ใช้ Postman mock server, monitor, runner ❌ Bruno ยังไม่มีฟีเจอร์พวกนี้

สรุป

Bruno ไม่ได้พยายามแข่งว่าใคร feature เยอะกว่า — มันชนะด้วยแนวคิดที่ว่า "API collection คือโค้ด — เก็บใน Git, review ใน PR, deploy พร้อมโค้ด"

สำหรับ dev ที่เชื่อว่า "ทุกอย่างควรอยู่ใน repo" — Bruno คือคำตอบ

📚 อ่านต่อ:

Top comments (0)