Insomnia เป็นไคลเอนต์ HTTP แบบเดสก์ท็อปโอเพนซอร์สสำหรับทดสอบ REST, GraphQL และ WebSocket API เครื่องมือนี้โดดเด่นด้วยอินเทอร์เฟซที่เรียบง่าย ตัวแก้ไขคำขอในตัว และการรองรับตัวแปรสภาพแวดล้อมโดยไม่ต้องลงทะเบียน ตามข้อมูลจาก Insomnia Documentation (2026) ไคลเอนต์รองรับการสร้างโค้ดอัตโนมัติในภาษาการเขียนโปรแกรมมากกว่า 20 ภาษา
ประเด็นสำคัญ
Insomnia เป็นแอปพลิเคชันข้ามแพลตฟอร์ม (Electron) สำหรับส่งคำขอ HTTP และดีบัก API โดยพัฒนาโดยบริษัท Kong ตั้งแต่ปี 2016 เพื่อเป็นทางเลือกแทน Postman ที่เน้นความเร็วและความเป็นส่วนตัว: ข้อมูลถูกจัดเก็บในเครื่อง การซิงค์บนคลาวด์เป็นตัวเลือกเสริมและต้องลงทะเบียน
หน้าต่างหลักแบ่งออกเป็นสามคอลัมน์: ด้านซ้ายเป็นแผนผังคำขอ (Workspace) ตรงกลางเป็นตัวแก้ไขคำขอพร้อมแท็บ Params, Headers, Body ด้านขวาเป็นแผงการตอบกลับพร้อมโหมด Pretty, Raw และ Preview ธีมสีเข้ม เปิดใช้งานตามค่าเริ่มต้น และรองรับธีมแบบกำหนดเองผ่านตัวแปร CSS
Insomnia รองรับการส่งออกคำขอเป็นโค้ดในมากกว่า 20 ภาษาและเฟรมเวิร์ก: cURL, HTTPie, Python Requests, JavaScript Fetch/Axios, Kotlin OkHttp, Swift URLSession, Java Unirest, Ruby Net::HTTP และอื่น ๆ ตัวสร้างจะคำนึงถึงส่วนหัว เนื้อหาของคำขอ และประเภทการยืนยันตัวตน ซึ่งช่วยเร่งการผสานรวม API เข้ากับโค้ดของแอปพลิเคชัน
Insomnia และ Postman แก้ปัญหาเดียวกันแต่มีลำดับความสำคัญที่แตกต่างกัน Insomnia เบากว่า (~80 MB เทียบกับ ~300 MB) เริ่มทำงานได้เร็วกว่าและทำงานออฟไลน์ได้อย่างสมบูรณ์โดยไม่บังคับให้ลงทะเบียน Postman นำเสนอระบบนิเวศที่สมบูรณ์กว่าพร้อมการตรวจสอบ เซิร์ฟเวอร์จำลอง (mock) และพื้นที่ทำงานของทีม
| เกณฑ์ | Insomnia | Postman |
|---|---|---|
| ขนาดแอป | ~80 MB | ~300 MB |
| โหมดออฟไลน์ | เต็มรูปแบบ | จำกัด |
| GraphQL | ตัวแก้ไขในตัว | เวอร์ชันเบต้า |
| CLI | Inso CLI | Newman |
| ปลั๊กอิน | Plugin Hub | ส่วนขยาย |
สำหรับการพัฒนาส่วนบุคคลและการทดสอบปลายทางอย่างรวดเร็ว Insomnia สะดวกกว่าเนื่องจากความเบาและการไม่ต้องลงทะเบียน สำหรับการทำงานเป็นทีมที่มีคอลเลกชันร่วมกัน การผสานรวม CI/CD และการตรวจสอบ API ในระบบจริง Postman ยังคงเป็นมาตรฐานของอุตสาหกรรม
พื้นที่ทำงาน ใน Insomnia มีแผนผังคำขอที่แบ่งออกเป็นโฟลเดอร์ แต่ละคำขอสามารถเป็นประเภท HTTP, GraphQL, WebSocket หรือ gRPC รองรับการลากและวาง การคัดลอก และการจัดกลุ่มคำขอตามป้ายสี ไฟล์กำหนดค่าของพื้นที่ทำงานถูกจัดเก็บในรูปแบบ JSON
Insomnia รองรับสภาพแวดล้อมแบบซ้อน (Sub Environments) ที่สืบทอดตัวแปรจากสภาพแวดล้อมหลัก ซึ่งช่วยให้กำหนด URL ฐานในสภาพแวดล้อมระดับโลกและกำหนดพารามิเตอร์ที่แตกต่างกันเท่านั้นสำหรับสภาพแวดล้อมต่าง ๆ ตัวแปรจะถูกแทนที่ด้วยไวยากรณ์ {`{`}_variable${`}`}
// ตัวอย่างโครงสร้างสภาพแวดล้อมของ Insomnia
{
"base_url": "https://api.example.com",
"timeout": 5000,
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
}
}
Insomnia มอบตัวแก้ไข GraphQL ที่ดีที่สุดตัวหนึ่งในบรรดาไคลเอนต์ API แท็บ GraphQL Query ช่วยให้เขียนคำขอพร้อมการเติมฟิลด์อัตโนมัติตามสคีมาที่โหลด ด้านขวาจะแสดงเอกสารเกี่ยวกับประเภท ฟิลด์ และอาร์กิวเมนต์แบบเรียลไทม์
สคีมาถูกโหลดผ่านคำขอ GraphQL Introspection ไปยังปลายทาง Insomnia แคชสคีมาไว้ในเครื่องและอัปเดตโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลง หลังจากการโหลด การเติมอัตโนมัติ (Ctrl+Space) การตรวจสอบความถูกต้องของคำขอ และการดูตัวอย่างข้อผิดพลาดที่อาจเกิดขึ้นก่อนส่งจะพร้อมใช้งาน
# คำขอ GraphQL พร้อมตัวแปรใน Insomnia
query GetUser($id: ID!) {
user(id: $id) {
name
email
posts {
title
createdAt
}
}
}
Insomnia Plugin Hub มีปลั๊กอินมากกว่า 100 รายการที่ขยายฟังก์ชันการทำงานของไคลเอนต์ ปลั๊กอินถูกติดตั้งผ่านเมนู Preferences → Plugins หรือด้วยตนเองผ่าน npm หมวดหมู่ยอดนิยมรวมถึงการสร้างข้อมูลทดสอบ การส่งออกไปยังรูปแบบต่าง ๆ และตัวตรวจสอบการตอบกลับแบบกำหนดเอง ปลั๊กอินแต่ละตัวต้องผ่านการตรวจสอบเนื้อหาภาคบังคับก่อนเผยแพร่สู่ฮับนักพัฒนาสาธารณะ
ปลั๊กอินเขียนด้วย JavaScript และโต้ตอบกับ Insomnia ผ่าน API การสร้างเทมเพลต (response.*, request.*, environment.*) การพัฒนาปลั๊กอินต้องใช้ความรู้พื้นฐานเกี่ยวกับ Node.js และการเผยแพร่ผ่านแพ็กเกจ npm ที่มีแท็ก insomnia-plugin
Inso CLI เป็นยูทิลิตี้คอนโซลที่รวมอยู่ใน Insomnia สำหรับรันคำขอและการทดสอบจากเทอร์มินัล Inso รันคำขอแต่ละรายการหรือทั้งคอลเลกชัน ส่งออกผลลัพธ์เป็น JSON และสามารถผสานรวมเข้ากับไปป์ไลน์ CI/CD คำสั่ง inso run collection จะรันคำขอทั้งหมดในคอลเลกชันตามลำดับ
Inso CLI ทำงานในคอนเทนเนอร์ Docker และโหมด headless ซึ่งช่วยให้ใช้ใน GitHub Actions และ GitLab CI ได้ การกำหนดค่าการเปิดใช้ถูกอธิบายในไฟล์ YAML ที่ระบุเส้นทางไปยังคอลเลกชันที่ส่งออกและสภาพแวดล้อม รองรับการยืนยัน (assertion) เกี่ยวกับรหัสสถานะและเนื้อหาการตอบกลับผ่านสคริปต์ JavaScript
# เวิร์กโฟลว์ GitHub Actions กับ Inso CLI
- name: Run API tests
run: npx insomnia-inso run collection
--collection "Auth API"
--env "Staging"
--reporter junit
--output reports/api-results.xml
Insomnia รองรับการซิงค์คอลเลกชันผ่าน Git ไฟล์คอลเลกชันถูกจัดเก็บในรูปแบบ JSON และสามารถเพิ่มลงในคลังเก็บของโปรเจกต์ได้ Insomnia มีไคลเอนต์ Git ในตัวสำหรับดูการเปลี่ยนแปลง สร้างคอมมิต และแก้ไขข้อขัดแย้งการผสานโดยตรงจากอินเทอร์เฟซ
เพื่อเชื่อมต่อ Git ให้สร้างโฟลเดอร์ในเครื่องที่มีคลังเก็บและระบุเป็นไดเรกทอรีรากในตั้งค่าของ Insomnia แอปพลิเคชันจะติดตามการเปลี่ยนแปลงในไฟล์คอลเลกชันโดยอัตโนมัติและแสดงในแผง Version Control รองรับการดำเนินการมาตรฐาน: commit, push, pull และการดู diff ระหว่างเวอร์ชัน
สำหรับโปรเจกต์ที่ไม่มี Git Insomnia เสนอการซิงค์บนคลาวด์ผ่าน Insomnia Cloud แผนฟรีรวมสมาชิกทีมสูงสุด 3 คนและการสำรองข้อมูลคอลเลกชันอัตโนมัติ แผนแบบชำระเงินเพิ่มการจัดการสิทธิ์เข้าถึง การตรวจสอบการเปลี่ยนแปลง และการสนับสนุนที่มีลำดับความสำคัญ
| วิธีการซิงค์ | ฟรี | ออฟไลน์ | การควบคุมเวอร์ชัน |
|---|---|---|---|
| Git (ในเครื่อง) | ใช่ | ใช่ | เต็มรูปแบบ (commit, diff, merge) |
| Insomnia Cloud | สูงสุด 3 ผู้ใช้ | ไม่ | พื้นฐาน (ประวัติการเปลี่ยนแปลง) |
| การส่งออกไฟล์ | ใช่ | ใช่ | ด้วยตนเอง (ผ่านระบบควบคุมเวอร์ชัน) |
Design Mode ใน Insomnia ช่วยให้สร้างสเปก API ในรูปแบบ OpenAPI 3.0 โหมดนี้ทำงานเหมือนตัวแก้ไขแบบภาพ: กำหนดปลายทางและสคีมาข้อมูลโดยไม่ต้องเขียน YAML ด้วยตนเอง สเปกสามารถส่งออกเป็น JSON หรือ YAML ได้
Insomnia นำเข้าสเปก OpenAPI และสร้างคอลเลกชันคำขอสำหรับแต่ละปลายทาง เส้นทางและสคีมา ถูกแปลงเป็นคำขอ HTTP ที่พร้อมใช้งาน ฟังก์ชันนี้มีประโยชน์เมื่อผสานรวมกับไมโครเซอร์วิส ซึ่งสเปกถูกจัดเก็บในคลังเก็บแยกของทีม
แต่ละคำขอสามารถกำหนดป้ายสีได้: red, blue, green, orange, purple การกรองตามแท็ก ทำงานผ่านแถบค้นหาโดยไม่ขึ้นกับโครงสร้างโฟลเดอร์ ซึ่งช่วยให้การนำทางในโปรเจกต์ที่มีปลายทางหลายร้อยรายการและหลายโมดูลง่ายขึ้น
Design Mode ใน Insomnia ช่วยให้สร้างสเปก API ในรูปแบบ OpenAPI 3.0 ภายในแอปพลิเคชันโดยตรง โหมดนี้ทำงานเหมือนตัวแก้ไขแบบภาพ: กำหนดปลายทาง สคีมาข้อมูล และพารามิเตอร์โดยไม่ต้องเขียน YAML ด้วยตนเอง สเปกสามารถส่งออกเป็น JSON หรือ YAML เพื่อเผยแพร่ในคลังเก็บได้
Insomnia นำเข้าสเปก OpenAPI ที่มีอยู่และสร้างคอลเลกชันคำขอสำหรับแต่ละปลายทางโดยอัตโนมัติ เส้นทางและสคีมา ถูกแปลงเป็นคำขอ HTTP ที่พร้อมใช้งานพร้อมประเภทข้อมูลที่ถูกต้อง ฟังก์ชันนี้มีประโยชน์เมื่อผสานรวมกับไมโครเซอร์วิส ซึ่งสเปกถูกจัดเก็บและดูแลโดยทีมพัฒนาแบ็กเอนด์แยกต่างหาก
เพื่อจัดระเบียบคำขอจำนวนมาก Insomnia รองรับการติดแท็ก — แต่ละคำขอสามารถกำหนดป้ายสีได้: red, blue, green, orange, purple การกรองตามแท็ก ทำงานผ่านแถบค้นหาโดยไม่ขึ้นกับโครงสร้างโฟลเดอร์ ซึ่งช่วยให้การนำทางในโปรเจกต์ที่มีปลายทางหลายร้อยรายการและโมดูล API ที่ใช้งานได้หลายโมดูลง่ายขึ้น
คำถามที่พบบ่อย
ไม่ การลงทะเบียนไม่จำเป็น Insomnia ทำงานออฟไลน์อย่างสมบูรณ์ การซิงค์บนคลาวด์มีให้เป็นตัวเลือกสำหรับการทำงานเป็นทีม แต่ข้อมูลทั้งหมดถูกจัดเก็บในเครื่องในไฟล์ JSON ในโฟลเดอร์ ~/.config/Insomnia/
ส่งออกคอลเลกชันจาก Postman ในรูปแบบ JSON (Collection v2.1) ใน Insomnia เลือก Import/Export → Import Data → From File Insomnia จะแปลงคอลเลกชันโดยอัตโนมัติโดยรักษาคำขอ ส่วนหัว และตัวแปรสภาพแวดล้อมไว้
ใช่ ตั้งแต่เวอร์ชัน 2022 Insomnia รองรับโปรโตคอล WebSocket และ Socket.IO สร้างคำขอใหม่ประเภท WebSocket ระบุ URL (ws:// หรือ wss://) และส่งข้อความผ่านอินเทอร์เฟซแชท
Inso CLI เป็นยูทิลิตี้ดั้งเดิมของ Insomnia สำหรับรันคอลเลกชันจากคอนโซล Newman เป็นเครื่องมือที่เทียบเท่าสำหรับ Postman Inso เบากว่า ไม่ต้องติดตั้งแยกต่างหาก (มาพร้อมกับ Insomnia) และรองรับคำขอทุกประเภทของ Insomnia รวมถึง GraphQL
ใช่ Insomnia รองรับคำขอ gRPC ผ่านแท็บ gRPC ต้องโหลดไฟล์ .proto ที่มีคำจำกัดความของบริการ หลังการโหลด Insomnia จะแสดงเมธอด RPC ที่มีอยู่และสร้างข้อความ Protobuf ไบนารีสำหรับการส่ง
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม