OpenAPI to cURL Converter: แปลง spec ใด ๆ เป็นคำสั่งพร้อมรันทันที
สร้างคำสั่ง cURL แบบ copy-paste จากไฟล์ OpenAPI หรือ Swagger JSON ได้ทั้งหมดใน browser พร้อมดูว่า method, server, parameter และ example body กลายเป็น request เดียวที่รันได้จริงอย่างไร
Table of Contents
OpenAPI to cURL Converter: แปลง spec ใด ๆ เป็นคำสั่งพร้อมรันทันที
งาน integration เกือบทุกงานเริ่มแบบเดียวกัน มีคนส่งไฟล์ OpenAPI หรือ Swagger JSON มาให้ แล้วคำถามแรกที่เจอจริง ๆ ไม่ใช่ "API นี้ทำอะไร" แต่คือ "จะเรียก endpoint นี้ยังไงโดยไม่ต้องอ่าน spec 40 หน้า" คุณต้องการ request ที่รันได้จริง: method ถูก URL ถูก header ครบ และมี body ที่สมเหตุสมผล โดยเฉพาะเมื่อต้องการภายในห้านาที OpenAPI to cURL Converter ตอบคำถามนี้ได้ทันที — paste spec คลิก endpoint ที่ต้องการ แล้ว copy คำสั่ง cURL ฉบับสมบูรณ์ไปรันใน terminal ได้เลย
cURL ยังคงเป็นภาษากลางของงาน API มันติดมากับเครื่อง macOS, Linux และ Windows ยุคใหม่ทั้งหมด โผล่ทุกที่ตั้งแต่ ticket, runbook ไปจนถึงห้อง chat ตอนเกิด incident และแปลงเป็น HTTP client อะไรก็ได้ตามที่โค้ด production ใช้ คำสั่ง cURL ที่ generate จาก spec จึงเป็น artifact ที่พกพาได้ดีที่สุดเท่าที่จะสร้างได้จาก specification หนึ่งไฟล์
เครื่องมือนี้ทำงานใน browser 100% spec ของคุณ — ที่มักอธิบาย infrastructure ภายใน, host บน staging และ schema ขององค์กร — ไม่เคยถูก upload ไปไหนทั้งการ parse และการ generate คำสั่งเกิดขึ้นในเครื่องด้วย JavaScript ล้วน ๆ จึงใช้กับ API definition ที่เป็นความลับหรืออยู่ใต้ NDA ได้สบายใจ
ทำไมต้องใช้ OpenAPI to cURL Converter?
- ข้ามการแปลงด้วยมือไปเลย การไล่หา base URL, จำ list ของ parameter และเขียน --data-raw เองนั้นช้าและพลาดง่าย เครื่องมือทำ mapping นี้แบบเป็นระบบให้หมด
- รองรับทั้ง OpenAPI และ Swagger รับไฟล์ทั้ง Swagger 2.0 และ OpenAPI 3.x — ซึ่งสำคัญกว่าที่คิด เพราะ spec ขององค์กรจำนวนมากยังอยู่ในฟอร์แมตเก่า
- เป็นส่วนตัวตั้งแต่การออกแบบ spec ไม่เคยออกจาก tab ไม่มีสมัครสมาชิก ไม่มี upload ไม่มี telemetry — ข้อบังคับที่ต่อรองไม่ได้เวลาไฟล์อธิบาย API ภายในหรือสิ่งที่อยู่ใต้ NDA
- มี example body มาให้ด้วย เมื่อ spec กำหนด request body example ไว้ เครื่องมือจะ quote ใส่คำสั่งให้ ทำให้ request แรกของคุณสมจริง ไม่ใช่ shell เปล่า ๆ ที่ fail ตั้งแต่ validation
- สร้างมาเพื่อการแชร์ คำสั่ง cURL บรรทัดเดียว paste ลง ticket, README และ chat ได้สวย และใครก็รันซ้ำได้โดยไม่ต้องติดตั้งอะไรเพิ่ม
- ฟรี ทันที ไม่จำกัด ไม่มี signup ไม่มี rate limit ไม่ต้อง install — เปิด tab แล้วได้คำตอบใน paste เดียว
คุณสมบัติเด่น
| คุณสมบัติ | ทำอะไร |
|---|---|
| Endpoint picker | แสดง method และ path ทุกรายการ คลิกเลือกได้โดยไม่ต้องไล่ JSON |
| Server-aware URL | ต่อ servers entry เข้ากับ path ของ operation เป็น URL เดียว |
| สร้าง header อัตโนมัติ | ใส่ Content-Type, Accept และ header ตาม security scheme ที่ประกาศ |
| เติม parameter ให้ | เติม path parameter และต่อ query parameter ด้วยค่า example |
| Request body example | ดึง payload ตัวอย่างจาก spec มา quote ลงคำสั่งอย่างปลอดภัย |
| Copy-to-clipboard | คลิกเดียว copy คำสั่งหลายบรรทัดพร้อม line continuation ครบ |
มีสองรายละเอียดที่ควรชี้ให้เห็น: คำสั่งที่ได้จะครอบ URL และ body ด้วย single quote จึงเดาพฤติกรรม shell ทั่วไปได้แม่น และการ generate เป็นแบบ deterministic — endpoint เดิมใน spec เดิมให้คำสั่งเดิมเสมอ เทียบใน diff หรือแปะลงเอกสารได้อย่างสบายใจ
วิธีการใช้งาน
- ใส่ spec ของคุณ เปิด OpenAPI to cURL Converter แล้ว paste เนื้อหา JSON ของไฟล์ OpenAPI หรือ Swagger เครื่องมือ parse ในเครื่องและแสดง operation ทั้งหมดที่เจอ
- เลือก endpoint เลื่อนดูรายการ method คู่กับ path แล้วคลิก operation ที่สนใจ
- ตรวจคำสั่งที่ได้ ดู method, URL ที่ต่อจาก server ที่ประกาศไว้, header และ example body พร้อมยืนยันว่า environment ปลายทางใช่อันที่ตั้งใจ
- เปลี่ยน placeholder สิ่งที่ spec รู้ไม่ได้ — โดยเฉพาะ auth token — จะโผล่มาเป็น placeholder ชัด ๆ อย่าง YOUR_TOKEN
- Copy แล้วรัน paste ลง terminal, CI job หรือไฟล์ test ถ้า response แปลก ๆ ให้ปรับค่า input แล้วรันใหม่
จาก path ใน spec สู่ request ที่รันได้จริง
ระหว่างไฟล์ JSON กับคำสั่งที่พิมพ์ลง terminal มีอะไรเกิดขึ้น? request แบบ cURL ต้องการส่วนผสมสี่อย่าง และทุกอย่างมีอยู่แล้วใน specification — หน้าที่ของ converter คือประกอบมันเข้าด้วยกันเท่านั้น
ชิ้นส่วนที่ converter ประกอบเข้าด้วยกัน
HTTP method มาจาก key ของ operation (get, post, patch) ใต้ path แต่ละเส้น URL มาจากการต่อ servers entry เข้ากับ path template parameter ถูกอ่านจาก parameters array ของ operation และ body มาจาก requestBody — ยิ่งถ้ามีคนใจดีเขียน example ไว้ยิ่งดี
{
"servers": [{ "url": "https://api.acme.dev/v2" }],
"paths": {
"/invoices/{invoiceId}": {
"patch": {
"parameters": [
{ "name": "invoiceId", "in": "path", "required": true, "example": "INV-2041" },
{ "name": "notify", "in": "query", "example": true }
],
"requestBody": {
"content": {
"application/json": {
"example": { "status": "paid", "paidAt": "2026-09-13" }
}
}
}
}
}
}
}
converter เดินตามโครงสร้างนี้แล้ว emit คำสั่งออกมาเป็น
curl -X PATCH 'https://api.acme.dev/v2/invoices/INV-2041?notify=true' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_TOKEN' \
--data-raw '{"status":"paid","paidAt":"2026-09-13"}'
path parameter กับ query parameter ต่างกันอย่างไร
parameter สองแบบทำงานต่างกัน invoiceId ประกาศเป็น in: path ค่า example ของมันจึงแทนที่ segment {invoiceId} ใน URL โดยตรง ส่วน notify ประกาศเป็น in: query จึงถูกต่อท้ายหลังเครื่องหมายคำถามในรูป key-value จุดที่ typo ชอบเกิดคือการสลับสองแบบนี้ — path parameter ที่หลุดไปอยู่ใน query string จะชี้ไป resource ผิดตัวแบบเงียบ ๆ
header ส่วน auth ยังเป็น placeholder
ถ้า operation ประกาศ security scheme ไว้ — bearer token, API key header, basic auth — converter จะ emit header นั้นพร้อม placeholder ที่เห็นชัดว่าต้องเติมเอง ไม่ใช่เดา credential ขึ้นมาเอง คำสั่งที่ได้จึงปลอดภัยพอจะแปะลง ticket เพราะไม่มีทางรั่ว secret ใครรันก็ใส่ token ของตัวเองเสียเอง
ทำไม example ใน spec ถึงทำให้คำสั่งใช้งานได้ทันที
คำสั่งที่ body เป็นวงเล็บปีกกาเปล่า ๆ รันผ่านแน่ แต่ไม่บอกอะไรคุณเลย — validation error พิสูจน์แค่ว่า request พัง ไม่ใช่ว่า endpoint ทำงานถูก เมื่อ spec มี example ที่สมจริง การยิงครั้งแรกจะเดินผ่าน happy path จริงและได้ response ที่มีความหมายกลับมา นั่นคือเส้นแบ่งระหว่าง "endpoint มีอยู่" กับ "endpoint ใช้งานได้กับ use case ที่สนใจ" ภายในรอบเดียว
กรณีการใช้งานจริง
smoke test deployment ใหม่
หลัง deploy เสร็จ generate คำสั่งของ endpoint สำคัญ ๆ รันกับ environment ใหม่ แล้วยืนยันว่าแต่ละตัวคืน status ตามคาดก่อนประกาศว่า release healthy — smoke test ทั้งชุดใช้เวลาแค่นาทีเดียวและเหลือร่องรอยตรวจสอบย้อนหลังใน terminal
ป้อนคำสั่งตั้งต้นให้ integration test
integration test suite ต้องมี request รูปธรรมเป็นจุดเริ่ม generate คำสั่ง หย่อนลง test harness เป็น template แล้ว parameterize ส่วนที่ต่างกันในแต่ละ case — test จะยังผูกกับ contract อยู่เสมอเพราะสืบทอดชื่อและชนิดของ parameter มาจาก spec โดยตรง
onboarding frontend developer ให้รู้จัก endpoint ฝั่ง backend
วิธีสอน endpoint ใหม่ที่เร็วที่สุดคือคำสั่งที่เขารันได้ ไม่ใช่ตาราง schema สามหน้า generate คำสั่งหนึ่งอันต่อหนึ่ง endpoint แปะลงเอกสาร onboarding แล้วให้เพื่อนใหม่ส่อง response จริงบน staging ได้ตั้งแต่นาทีแรก
support runbook และ incident
ตอน production มีปัญหา runbook ต้องมีขั้นตอน reproduction ที่ใช้ได้แม้ใจสั่น กลุ่มคำสั่งสำเร็จรูป — health check, ดู status, ค้นข้อมูลแบบ read-only — ช่วยให้ on-call engineer ยืนยันพฤติกรรมระบบได้โดยไม่ต้องนึก syntax request ขึ้นมาเองตอนตีสาม
Best Practices
- เปลี่ยน auth placeholder ก่อนส่งคำสั่งไปที่ไหนก็ตาม ใส่ credential แบบ scoped และหมดอายุเร็วตอนรันเท่านั้น ห้ามแปะ token จริงลง ticket, screenshot หรือเอกสารที่แชร์กัน
- รักษา example ใน spec ให้ทันสมัย request ที่ generate ได้จะสมจริงแค่ไหนขึ้นกับ example ใน specification — ถ้า body หลุดจากที่ endpoint ยอมรับจริง ให้แก้ที่ spec ไม่ใช่แก้ที่คำสั่ง
- ทดสอบที่ staging ก่อน คำสั่งที่ generate มาสะดวกจนลืมคิด ให้ชี้ไป staging จนมั่นใจเรื่อง side effect โดยเฉพาะอะไรที่เขียนข้อมูล
- Regenerate หลัง spec เปลี่ยน อย่าใจร้อนแก้คำสั่งเก่าด้วยมือเมื่อ API พัฒนา — paste spec ใหม่แล้ว generate ซ้ำ คำสั่งจะยังตรงกับ contract
- ถือว่าคำสั่งเป็นจุดตั้งต้น ไม่ใช่โค้ดสำเร็จ ก่อนยกระดับขึ้นเป็น script หรือ test ให้เติม pagination, error handling และ timeout เอง
- เช็คว่า body ที่ถูก quote รอดผ่าน shell ของคุณ ถ้าส่งคำสั่งผ่านชั้นอื่นเช่น Make หรือ CI templating ให้ตรวจอีกรอบว่า body ถึงปลายทางครบถ้วน
เริ่มแปลง spec เป็น cURL วันนี้
specification คือสัญญา แต่คำสั่ง cURL คือบทสนทนา — และงาน API ส่วนใหญ่เกิดในบทสนทนา คราวหน้าที่มีคนทิ้ง spec มาให้ ข้ามการอ่านยาวไปเลย: paste ลง OpenAPI to cURL Converter ฟรี คลิก endpoint ที่ต้องการ แล้วยิง request จริงภายในไม่กี่วินาที
เครื่องมือที่เกี่ยวข้อง
- OpenAPI to TypeScript Converter — เปลี่ยน spec เดียวกันเป็น typed interface สำหรับโค้ดฝั่ง client
- HAR to cURL Converter — เปลี่ยน request ที่ capture จาก DevTools ของ browser เป็นคำสั่ง cURL สะอาด ๆ
- JSON Formatter — จัดรูปและตรวจความถูกต้องของตัว spec และ response body ที่ได้กลับมา
ขอให้ request แรกของทุกวันคืน 200 กลับมา
คำถามที่พบบ่อย
ถ: เครื่องมือ upload ไฟล์ OpenAPI ของฉันขึ้น server ไหม? ตอบ: ไม่ การ parse และการ generate คำสั่งทำงานใน browser ด้วย JavaScript ในเครื่องล้วน ๆ spec จึงไม่เคยออกจากเครื่องของคุณ
ถ: รองรับ specification เวอร์ชันไหนบ้าง? ตอบ: ทั้ง Swagger 2.0 และ OpenAPI 3.x เครื่องมือจัดการความต่างภายในให้เรียบร้อย คุณไม่ต้องแปลงเอง
ถ: ตรงส่วน credential จะแสดงอะไร? ตอบ: placeholder ที่ชัดเจนอย่าง YOUR_TOKEN ทุกจุดที่ operation ประกาศ security scheme ไว้ คุณใส่ credential จริงตอนรัน ทำให้คำสั่งที่ได้ปลอดภัยต่อการแชร์
ถ: เอาคำสั่งที่ได้ไปใช้ใน CI หรือ script ได้ไหม? ตอบ: ได้ เปลี่ยน placeholder เป็นค่าจาก secret store หรือ environment variable แล้วยืนยันว่า server URL ตรงกับ environment ปลายทาง คำสั่งจะทำงานได้ใน pipeline แบบ shell ทุกแบบ
ถ: ถ้า spec ของฉันไม่มี request body example ล่ะ? ตอบ: คำสั่งยังมี method, URL และ header ถูกต้องครบ แต่ body จะเรียบมาก ให้ดู schema ใน spec แล้วเติมค่าตัวอย่างที่สมเหตุสมผลก่อนรัน