API คืออะไร? คู่มือภาษาธรรมดาสำหรับผู้สร้างแอป
API (application programming interface) คือวิธีที่กำหนดไว้สำหรับซอฟต์แวร์ชิ้นหนึ่งในการขอข้อมูลจากอีกชิ้น หรือให้มันทำบางอย่าง แอปของคุณส่งคำขอในรูปแบบที่ตกลงกันไว้ เช่น "ขอการจองของพรุ่งนี้" "เรียกเก็บเงิน 20 ยูโรจากบัตรใบนี้" "สรุปข้อความนี้" และระบบอื่นตอบกลับมาเป็นข้อมูลที่มีโครงสร้าง API คือวิธีที่ส่วนต่างๆ ของแอปคุยกัน และวิธีที่แอปใช้บริการภายนอก เช่น การชำระเงิน อีเมล แผนที่ และ AI
ทำไม API จึงสำคัญเมื่อคุณสร้างด้วย AI
แอปที่มีประโยชน์เกือบทั้งหมดประกอบด้วยชิ้นส่วนที่สื่อสารกันผ่าน API:
- ภายในแอปของคุณ หน้าจอในเบราว์เซอร์เรียก API ของแบ็กเอนด์ของคุณเองเพื่อโหลดและบันทึกข้อมูล
- ภายนอกแอปของคุณ แบ็กเอนด์ของคุณเรียก API ของบริษัทอื่น: Stripe สำหรับรับการชำระเงิน ผู้ให้บริการอีเมลสำหรับส่งใบเสร็จ ผู้ให้บริการโมเดล AI สำหรับสร้างข้อความ
เมื่อคุณขอให้ AI builder "รับการชำระเงิน" หรือ "เพิ่มสรุปด้วย AI" สิ่งที่มันทำจริงคือเขียนโค้ดที่เรียก API การรู้พื้นฐานช่วยให้คุณเข้าใจว่า AI ต้องการอะไรจากคุณ (ปกติคือบัญชีกับบริการนั้นและ API key) จุดไหนที่อาจผิดพลาด และค่าใช้จ่ายจะเป็นเท่าไร
ตัวอย่างในชีวิตประจำวัน
ลองนึกถึงร้านอาหาร คุณไม่ได้เดินเข้าครัวเพื่อทำอาหารเอง คุณอ่านเมนู บอกพนักงานเสิร์ฟว่าต้องการอะไรในรูปแบบที่ครัวเข้าใจ แล้วพนักงานนำอาหารกลับมา หรือบอกว่าเมนูนั้นหมดแล้ว
- เมนู คือเอกสาร API: รายการสิ่งที่คุณขอได้และวิธีขอ
- พนักงานเสิร์ฟ คือ API: วิธีที่ตกลงกันไว้เพียงทางเดียวสำหรับคำขอเข้าและคำตอบออก
- ครัว คือระบบอื่น: คุณไม่จำเป็นต้องรู้ว่าข้างในทำงานอย่างไร
- การสั่งอาหาร คือคำขอ จานที่ได้ คือคำตอบ
ครัวสามารถเปลี่ยนเตาอบและพนักงานได้โดยที่คุณไม่รู้สึก ตราบใดที่เมนูยังเหมือนเดิม นั่นคือคุณค่าที่แท้จริงของ API: มันช่วยให้สองระบบทำงานร่วมกันได้โดยไม่ต้องรู้ว่าอีกฝั่งสร้างขึ้นอย่างไร
คำขอ web API ทำงานอย่างไร
API ส่วนใหญ่ที่คุณจะพบเป็น web API ที่ทำงานผ่าน HTTP ซึ่งเป็นโปรโตคอลเดียวกับที่เบราว์เซอร์ใช้ คำขอแต่ละครั้งมีส่วนประกอบไม่กี่อย่าง:
| ส่วนประกอบ | คืออะไร | ตัวอย่าง |
|---|---|---|
| Method | ประเภทของการกระทำ | GET (อ่าน), POST (สร้าง) |
| URL / endpoint | ที่อยู่ของสิ่งที่คุณกระทำด้วย | https://api.example.com/bookings |
| Headers | ข้อมูลเพิ่มเติม รวมถึงว่าคุณคือใคร | Authorization: Bearer <your key> |
| Body | ข้อมูลที่คุณส่ง สำหรับการสร้างและอัปเดต | {"name": "Lena", "time": "14:00"} |
และแต่ละคำตอบมี:
| ส่วนประกอบ | คืออะไร | ตัวอย่าง |
|---|---|---|
| Status code | ตัวเลขที่บอกว่าเป็นอย่างไร | 200 OK, 201 Created, 404 Not Found |
| Body | ข้อมูลที่ส่งกลับ มักเป็น JSON | {"id": 5001, "status": "confirmed"} |
JSON (JavaScript Object Notation) คือรูปแบบข้อความธรรมดาของชื่อและค่าภายในวงเล็บปีกกา เป็นมาตรฐานที่ web API ใช้แลกเปลี่ยนข้อมูล
REST: รูปแบบที่พบบ่อยที่สุด
REST คือแนวทางที่ใช้กันอย่างกว้างขวางในการออกแบบ web API แต่ละประเภทของสิ่งต่างๆ มี URL ของตัวเอง และเมทอดมาตรฐานบอกว่าคุณกำลังทำอะไรกับมัน นี่คือหน้าตาของ REST API สำหรับแอปการจอง:
| Method | Endpoint | ทำอะไร |
|---|---|---|
GET | /api/bookings | แสดงรายการการจอง |
GET | /api/bookings/5001 | ดูการจองหนึ่งรายการ |
POST | /api/bookings | สร้างการจองใหม่ |
PATCH | /api/bookings/5001 | เปลี่ยนบางส่วนของการจอง เช่น เวลา |
DELETE | /api/bookings/5001 | ยกเลิก (ลบ) การจอง |
PUT ก็มีอยู่ และตามธรรมเนียมใช้แทนระเบียนทั้งหมด ส่วน PATCH เปลี่ยนเฉพาะฟิลด์ที่คุณส่ง
status code ที่พบบ่อยที่สุด:
| Code | ความหมาย |
|---|---|
200 / 201 | สำเร็จ / สร้างแล้ว |
400 | คำขอไม่ถูกต้อง: บางอย่างที่ส่งไปผิดหรือขาดหาย |
401 | ยังไม่ได้ยืนยันตัวตน: ไม่มีการล็อกอินหรือคีย์ที่ถูกต้อง |
403 | ห้ามเข้า: รู้จักคุณ แต่ไม่อนุญาตให้ทำสิ่งนี้ |
404 | ไม่พบ |
429 | คำขอมากเกินไป: ชนขีดจำกัดอัตรา (rate limit) |
500 | เซิร์ฟเวอร์เกิดข้อผิดพลาด |
เมื่อแอปของคุณพัง status code มักเป็นเบาะแสที่เร็วที่สุด 401 จากผู้ให้บริการชำระเงินมักหมายถึง API key หายไปหรือผิด ส่วน 429 หมายถึงคุณเรียกถี่เกินไป
REST ไม่ใช่รูปแบบเดียว ยังมี GraphQL และ API แบบ RPC แต่ REST คือสิ่งที่บริการส่วนใหญ่และแบ็กเอนด์ที่สร้างด้วย AI ใช้
ตัวอย่างประกอบ: การยืนยันการจองทรงผม
เมื่อลูกค้าจองการตัดผมในแอปร้านทำผม การเรียก API หลายครั้งอาจเกิดขึ้นในเวลาหนึ่งถึงสองวินาที:
- หน้าจองในเบราว์เซอร์ส่ง
POST /api/bookingsพร้อมบริการ เวลา และข้อมูลลูกค้าไปยังแบ็กเอนด์ของคุณ - แบ็กเอนด์ของคุณตรวจว่าช่องเวลาว่าง บันทึกการจองใน ฐานข้อมูล และส่ง
201 Createdกลับ - แบ็กเอนด์ของคุณเรียก API ของผู้ให้บริการอีเมลด้วย secret key ของมันว่า "ส่งการยืนยันนี้ไปยัง lena@example.com"
- หากมีการวางมัดจำ แบ็กเอนด์ขอให้ API ของผู้ให้บริการชำระเงินสร้าง checkout session และส่งลูกค้าไปที่นั่น
- ภายหลัง ผู้ให้บริการชำระเงินเรียกแอปของคุณเพื่อบอกว่าการชำระเงินสำเร็จ การเรียกย้อนกลับนั้นคือ webhook
ขั้นตอนแรกสองขั้นคือ API ของคุณเองระหว่าง frontend และ backend ขั้นตอนที่ 3–5 คือ API ของบุคคลที่สาม
คำศัพท์ที่พบบ่อย
| คำศัพท์ | ความหมาย |
|---|---|
| Endpoint | URL เฉพาะหนึ่งที่ API ตอบกลับ |
| API key | secret ที่ระบุแอปของคุณให้กับบริการ ปฏิบัติกับมันเหมือนรหัสผ่าน |
| Authentication | การพิสูจน์ว่าใครเป็นผู้เรียก ด้วยคีย์ โทเคน หรือการล็อกอิน ดู authentication คืออะไร |
| Rate limit | เพดานจำนวนคำขอที่ทำได้ในช่วงเวลาหนึ่ง |
| SDK | ไลบรารีโค้ดสำเร็จรูปที่ทำให้การเรียก API เฉพาะง่ายขึ้น |
| Documentation | "เมนู" ว่ามี endpoint อะไร รับและส่งอะไรบ้าง |
| Sandbox / test mode | เวอร์ชันของบริการสำหรับทดสอบโดยไม่มีเงินจริงหรือข้อมูลจริง |
| Webhook | การเรียกจากบริการอื่นเข้าสู่แอปของคุณเมื่อบางอย่างเกิดขึ้น |
ความผิดพลาดและความเข้าใจผิดที่พบบ่อย
- ใส่ secret key ในฝั่ง frontend สิ่งใดก็ตามในโค้ดที่รันในเบราว์เซอร์สามารถถูกเห็นโดยใครก็ได้ที่เข้าเว็บ secret key ต้องอยู่บนเซิร์ฟเวอร์ ใน environment variables หรือ secrets
- วางคีย์ลงในแชท ประวัติแชทอาจถูกเก็บไว้ ใช้ฟีเจอร์ secrets ของ builder แทน และหมุนเวียน (rotate) คีย์ใดก็ตามที่รั่วไหล
- สมมติว่า API ฟรี API หลายตัวคิดค่าบริการต่อคำขอหรือต่อหน่วยการใช้งาน API ของโมเดล AI คิดตามโทเค็น ตรวจราคาและตั้งขีดจำกัดการใช้จ่าย ดู วิธีใช้ LLM API
- ไม่จัดการความล้มเหลว บริการภายนอกล่ม หมดเวลา และชนขีดจำกัด ขอข้อความแสดงข้อผิดพลาดที่สมเหตุสมผลและการลองใหม่
- เชื่อใจเบราว์เซอร์ API ของคุณเองต้องตรวจสิทธิ์ด้วยตัวเอง การซ่อนปุ่มไม่ได้หยุดใครบางคนจากการเรียก endpoint โดยตรง
- ใช้ live key ระหว่างการทดสอบ ใช้คีย์โหมดทดสอบจนกว่าคุณจะพร้อมเปิดตัว
สิ่งที่ควรขอจาก AI builder ของคุณ
- "แอปนี้ใช้ API ภายนอกตัวไหนบ้าง และแต่ละตัวมีค่าใช้จ่ายเท่าไร"
- "เรียก API การชำระเงินจากเซิร์ฟเวอร์เท่านั้น อ่านคีย์จาก environment variable"
- "แสดงทุก endpoint ใน API ของเรา สิ่งที่มันทำ และใครได้รับอนุญาตให้เรียก"
- "ตรวจบนเซิร์ฟเวอร์ว่าผู้ใช้ที่ล็อกอินเป็นเจ้าของการจองก่อนอัปเดตหรือลบ"
- "หาก API ของอีเมลล้มเหลว ให้บันทึกการจองไว้ต่อไปและบันทึกข้อผิดพลาด"
- "ใช้โหมดทดสอบของผู้ให้บริการไปก่อน"
API ใน Mythex
Mythex สามารถสร้าง API ของคุณเอง ทั้งเป็นส่วนหนึ่งของเว็บแอป หรือเป็นแบ็กเอนด์แยกใน Node, Python (FastAPI), C# หรือ Java ที่ทำงานคู่กับ frontend ของคุณ และเขียนโค้ดที่เรียกบริการภายนอกได้ คุณเพิ่มคีย์ของพวกเขาเป็น secrets ของโปรเจกต์แทนการวางในแชท และแอปของคุณจะใช้ได้ทั้งในพรีวิวและเมื่อเผยแพร่แล้ว เอกสารมีสูตรสำหรับ การเชื่อมต่อ API ใดก็ได้ และ การสร้างแบ็กเอนด์ REST API
คำถาม
API คืออะไรแบบง่ายๆ?
API (application programming interface) คือวิธีที่กำหนดไว้สำหรับซอฟต์แวร์ชิ้นหนึ่งในการขอข้อมูลหรือให้อีกชิ้นทำบางอย่าง แอปของคุณส่งคำขอในรูปแบบที่ตกลงกันไว้ และระบบอื่นส่งคำตอบกลับมา เช่น ข้อมูลสภาพอากาศ ผลการชำระเงิน หรือคำตอบที่ AI สร้างขึ้น
REST API คืออะไร?
REST API คือรูปแบบทั่วไปของ web API ที่แต่ละประเภทของสิ่งต่างๆ (การจอง ลูกค้า) มี URL และคุณใช้เมทอด HTTP มาตรฐาน GET เพื่ออ่าน POST เพื่อสร้าง PUT หรือ PATCH เพื่ออัปเดต และ DELETE เพื่อลบ ข้อมูลมักส่งกลับเป็น JSON
API key คืออะไร และควรเก็บไว้ที่ไหน?
API key คือสตริงลับที่ระบุตัวแอปของคุณให้กับบริการหนึ่ง และมักทำให้มันใช้เงินหรือเข้าถึงข้อมูลได้ เก็บไว้ใน environment variables หรือ secrets ของโปรเจกต์บนเซิร์ฟเวอร์ ห้ามอยู่ในโค้ดที่รันในเบราว์เซอร์ และห้ามอยู่ในรีโพซิทอรีสาธารณะ
ความต่างระหว่าง API กับ webhook คืออะไร?
กับ API แอปของคุณขอบางอย่างจากบริการอื่นเมื่อต้องการ กับ webhook บริการอื่นเรียกแอปของคุณเมื่อบางอย่างเกิดขึ้น เช่น ผู้ให้บริการชำระเงินแจ้งว่าการชำระเงินสำเร็จ