REST API และเอกสาร API ของแอป
สรุปสั้น ๆในแท็บผู้ดูแลระบบ ส่วน API เปลี่ยนตารางของแอปเป็น REST เอนด์พอยต์ที่ซอฟต์แวร์อื่นเรียกใช้ได้ ทั้งแสดงรายการ ดึงข้อมูล สร้าง อัปเดต หรือลบรายการข้อมูล คุณเลือกตาราง ฟิลด์ และผู้ที่เรียกใช้ได้ (ทุกคนสำหรับการอ่าน หรือเฉพาะผู้ที่มีคีย์ API ของโปรเจกต์) แล้วเปิดให้ใช้ด้วย เผยแพร่เอนด์พอยต์ เมื่อต้องการแชร์ ให้คลิก เผยแพร่เอกสาร เพื่อเปิดหน้าเอกสารอ้างอิง API และไฟล์ OpenAPI ให้นักพัฒนา
บางครั้งซอฟต์แวร์อื่นต้องใช้ข้อมูลของแอปคุณ เช่น เว็บไซต์ของพาร์ตเนอร์ที่แสดงสินค้าของคุณ สเปรดชีตที่ดึงคำสั่งซื้อใหม่ แอปมือถือ หรือเครื่องมืออัตโนมัติอย่าง Zapier หรือ n8n ซอฟต์แวร์เหล่านี้คุยกับแอปผ่าน API ซึ่งเป็นชุดที่อยู่เว็บ (เอนด์พอยต์) ที่ตอบกลับเป็นข้อมูลแทนหน้าเว็บ REST API เป็นแบบที่ใช้กันมากที่สุด
MonstarX สร้าง REST API ให้โดยไม่ต้องเขียนโค้ด คุณเลือกว่าจะแชร์อะไร แล้ว API จะใช้งานได้ในไม่กี่วินาที พร้อมหน้าเอกสารอ้างอิงที่นักพัฒนาอ่านได้
หาได้ที่ไหน
หัวข้อที่มีชื่อว่า “หาได้ที่ไหน”เปิดโปรเจกต์ คลิก ผู้ดูแลระบบ ในแถบด้านบน แล้วคลิก API ในแถบด้านข้างของผู้ดูแลระบบ คุณจะเห็น API ของโปรเจกต์ ด้านบนมีแถบ เอกสารอ้างอิง API สำหรับเผยแพร่เอกสาร API ทางซ้ายเป็นเอนด์พอยต์ของคุณ แต่ละตัวมีป้าย ออนไลน์ หรือ ร่าง และด้านล่างเป็น คีย์ API
สร้างเอนด์พอยต์อย่างไร
หัวข้อที่มีชื่อว่า “สร้างเอนด์พอยต์อย่างไร”-
ใน ผู้ดูแลระบบAPI คลิก เอนด์พอยต์ใหม่ (หรือ + ข้าง เอนด์พอยต์)
-
เลือก คอลเลกชัน คือตารางที่เอนด์พอยต์จะใช้ เช่น ตารางสูตรอาหาร
-
เลือก การดำเนินการ
การดำเนินการ เมธอดและที่อยู่ ทำอะไร รายการ GET /recipesส่งรายการข้อมูลกลับมาทีละหน้า ดึงข้อมูล GET /recipes/{id}ส่งรายการข้อมูลหนึ่งรายการตาม ID สร้าง POST /recipesเพิ่มรายการข้อมูล อัปเดต PATCH /recipes/{id}เปลี่ยนบางฟิลด์ของรายการข้อมูล ลบ DELETE /recipes/{id}นำรายการข้อมูลออก -
ตั้ง ชื่อ เส้นทาง URL และ คำอธิบาย ถ้าต้องการ ทั้งหมดนี้จะแสดงในเอกสาร API
-
ที่ ฟิลด์ที่เปิดเผย ให้ติ๊กเฉพาะฟิลด์ที่ผู้เรียกใช้เห็นหรือส่งได้ ฟิลด์ที่ไม่ได้ติ๊กจะเป็นข้อมูลส่วนตัว ฟิลด์ที่ดูเป็นข้อมูลอ่อนไหว เช่น รหัสผ่านและโทเค็น จะถูกตัดออกเสมอ
-
ที่ สิทธิ์เข้าถึง ให้เลือกว่าใครเรียกใช้ได้ (ดูด้านล่าง)
-
ติ๊ก เผยแพร่เอนด์พอยต์ แล้วคลิก บันทึกและเผยแพร่เอนด์พอยต์ เอนด์พอยต์ที่เผยแพร่จะ ออนไลน์ และตอบคำขอทันที ถ้าไม่ติ๊กช่องนี้ บันทึกเอนด์พอยต์ จะเก็บไว้เป็น ร่าง
ในรายการ แต่ละเอนด์พอยต์จะแสดงว่า ออนไลน์ หรือ ร่าง คำเดียวกันนี้แสดงใต้ แก้ไขเอนด์พอยต์ ตามด้วย การเปลี่ยนแปลงที่ไม่ได้บันทึก จนกว่าคุณจะบันทึก ถ้าต้องการปิดเอนด์พอยต์โดยไม่ลบ ให้เอาติ๊ก เผยแพร่เอนด์พอยต์ ออกแล้วบันทึก ส่วน ลบ จะนำเอนด์พอยต์ออก
ใครเรียกใช้เอนด์พอยต์ได้บ้าง
หัวข้อที่มีชื่อว่า “ใครเรียกใช้เอนด์พอยต์ได้บ้าง”| สิทธิ์เข้าถึง | ใครเรียกใช้ได้ | ใช้ได้กับ |
|---|---|---|
| ทุกคนอ่านได้ | ใครก็ได้ที่มีที่อยู่ | รายการ และ ดึงข้อมูล เท่านั้น |
| คีย์ API ของโปรเจกต์ | เฉพาะผู้เรียกใช้ที่ส่งคีย์ API ของโปรเจกต์มาด้วย | ทุกการดำเนินการ |
เอนด์พอยต์ที่เปลี่ยนข้อมูลต้องใช้คีย์เสมอ
สร้างคีย์ API อย่างไร
หัวข้อที่มีชื่อว่า “สร้างคีย์ API อย่างไร”-
ใน ผู้ดูแลระบบAPI คลิก คีย์ API
-
พิมพ์ชื่อที่บอกว่าจะใช้คีย์ที่ไหน เช่น “เซิร์ฟเวอร์วิดเจ็ตสูตรอาหาร” แล้วคลิก สร้างคีย์
-
คัดลอกคีย์ทันที คีย์จะขึ้นต้นด้วย
mxapi_และ แสดงอีกครั้งไม่ได้ เก็บไว้ในที่ปลอดภัย เช่น โปรแกรมจัดการรหัสผ่าน หรือที่เก็บข้อมูลลับของบริการอื่น
คีย์หนึ่งคีย์เปิดได้ ทุก เอนด์พอยต์ที่ป้องกันด้วยคีย์ในโปรเจกต์ จึงควรให้แต่ละบริการมีคีย์ของตัวเอง คลิก เพิกถอน เพื่อปิดคีย์ ทุกอย่างที่ใช้คีย์นั้นจะหยุดทำงานทันที
ผู้เรียกใช้ส่งคีย์ในส่วนหัว Authorization แบบนี้ Authorization: Bearer mxapi_…
ลองเรียกเอนด์พอยต์อย่างไร
หัวข้อที่มีชื่อว่า “ลองเรียกเอนด์พอยต์อย่างไร”เปิดเอนด์พอยต์แล้วคลิก ทดสอบ กรอก ID รายการข้อมูล คีย์ Bearer หรือ เนื้อหา JSON ถ้าเอนด์พอยต์ต้องใช้ แล้วคลิก ส่งคำขอ คุณจะเห็นสถานะ (200 หมายถึงสำเร็จ) เวลาที่ใช้ และคำตอบ สำหรับเอนด์พอยต์ที่ต้องใช้คีย์ ให้วางคีย์จาก คีย์ API ลงในช่อง คีย์ Bearer
การทดสอบส่งไปยังเอนด์พอยต์จริงที่ออนไลน์อยู่ ดังนั้น
- ร่างยังทดสอบไม่ได้ แท็บทดสอบจะแสดง เอนด์พอยต์นี้เป็นแบบร่าง คลิก บันทึกและเผยแพร่เอนด์พอยต์ ในแท็บนั้นเพื่อเผยแพร่แล้วทดสอบ
- บันทึกการเปลี่ยนแปลงก่อน ถ้ามีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก แท็บทดสอบจะขอให้บันทึกก่อนทดสอบ พร้อมปุ่ม บันทึกเอนด์พอยต์
การทดสอบ สร้าง อัปเดต หรือ ลบ จะเปลี่ยนข้อมูลจริงของคุณ
แท็บ โค้ด มีคำสั่ง cURL สำเร็จรูปให้คัดลอก และไฟล์ OpenAPI JSON ที่เครื่องมือ API อย่าง Postman และ Insomnia นำเข้าได้
เผยแพร่และแชร์เอกสาร API อย่างไร
หัวข้อที่มีชื่อว่า “เผยแพร่และแชร์เอกสาร API อย่างไร”เอกสาร API คือหน้า เอกสารอ้างอิง API สำหรับนักพัฒนา แสดงทุกเอนด์พอยต์ที่ออนไลน์ ฟิลด์ ต้องใช้คีย์หรือไม่ ช่อง ลองใช้ และตัวอย่าง cURL การเผยแพร่เอนด์พอยต์ไม่ได้เผยแพร่เอกสารไปด้วย คุณเลือกได้ว่าจะแชร์เมื่อไร
-
เผยแพร่เอนด์พอยต์อย่างน้อยหนึ่งตัวและบันทึกการเปลี่ยนแปลงทั้งหมด ก่อนหน้านั้นแถบ เอกสารอ้างอิง API ด้านบนของ ผู้ดูแลระบบAPI จะแสดง ไม่ได้เผยแพร่ และบอกว่ายังขาดอะไร
-
คลิก เผยแพร่เอกสาร
-
แถบจะเปลี่ยนเป็น เผยแพร่แล้ว คลิก คัดลอกลิงก์เอกสาร เพื่อแชร์ที่อยู่ หรือ เปิดเอกสาร API ใต้ คีย์ API เพื่อดูหน้าเอกสาร ที่อยู่จะมีลักษณะแบบนี้
https://monstarx.com/api-docs/<your project id>
หน้านี้เริ่มด้วยชื่อและคำอธิบายของโปรเจกต์ จำนวนเอนด์พอยต์ที่แสดง ID โปรเจกต์ และที่อยู่หลัก ใครที่มีลิงก์ก็อ่านได้ และระบบแจ้งเครื่องมือค้นหาไม่ให้จัดทำดัชนี หน้านี้แสดงเฉพาะเอนด์พอยต์ที่ออนไลน์และไม่แสดงคีย์เลย OpenAPI JSON ด้านบนลิงก์ไปยังคำอธิบายเดียวกันในรูปแบบไฟล์
ถ้าต้องการปิดเอกสาร ให้คลิก ยกเลิกการเผยแพร่เอกสาร หน้าเอกสารและไฟล์ OpenAPI จะใช้ไม่ได้ แต่เอนด์พอยต์ยังตอบคำขอตามปกติ ถ้าคุณปิดเอนด์พอยต์ทั้งหมด เอกสารจะถูกยกเลิกการเผยแพร่ไปด้วย และคุณเผยแพร่ใหม่ได้เมื่อพร้อม
คำขอและคำตอบมีหน้าตาอย่างไร
หัวข้อที่มีชื่อว่า “คำขอและคำตอบมีหน้าตาอย่างไร”ทุกเอนด์พอยต์อยู่ภายใต้ https://monstarx.com/api/rest/<your project id> ตามด้วยเส้นทางของเอนด์พอยต์
curl 'https://monstarx.com/api/rest/<project id>/recipes?page=1&limit=25'{ "data": [ { "id": "41a6…", "title": "Street tacos al pastor", "country_code": "MX" } ], "page": 1, "limit": 25, "hasMore": false}limit คือจำนวนรายการต่อหน้า 1 ถึง 100 รายการ (25 ถ้าไม่ระบุ) และ page คือ 1 ถึง 100 ส่วน hasMore บอกว่ายังมีหน้าถัดไปหรือไม่
curl -X POST 'https://monstarx.com/api/rest/<project id>/recipes' \ -H 'Authorization: Bearer YOUR_PROJECT_KEY' \ -H 'Content-Type: application/json' \ -d '{"title": "Lemon ricotta pancakes", "country_code": "IT"}'คำตอบ (สถานะ 201) มีรายการข้อมูลใหม่อยู่ใน data พร้อม id
curl -X PATCH 'https://monstarx.com/api/rest/<project id>/recipes/RECORD_ID' \ -H 'Authorization: Bearer YOUR_PROJECT_KEY' \ -H 'Content-Type: application/json' \ -d '{"title": "Fluffy lemon ricotta pancakes"}'
curl -X DELETE 'https://monstarx.com/api/rest/<project id>/recipes/RECORD_ID' \ -H 'Authorization: Bearer YOUR_PROJECT_KEY'อัปเดต ตอบกลับด้วยรายการข้อมูลที่เปลี่ยนแล้ว ส่วน ลบ ตอบกลับ { "deleted": true }
กฎของข้อมูลที่ส่ง
- ออบเจ็กต์ JSON พร้อม
Content-Type: application/jsonขนาดไม่เกิน 64 KB - เฉพาะฟิลด์ที่เปิดเผย และแต่ละฟิลด์เป็นค่าธรรมดา ได้แก่ ข้อความ (ไม่เกิน 20,000 ตัวอักษร) ตัวเลข
true/falseหรือnull - ตั้งหรือเปลี่ยน ID ไม่ได้ และเปลี่ยนฟิลด์ที่ตั้งเป็นอ่านอย่างเดียวในผู้ดูแลระบบไม่ได้
เมื่อมีอะไรผิดพลาด คำตอบจะมีข้อความ error และสถานะ ได้แก่ 400 (คำขอไม่ถูกต้อง) 401 (ต้องใช้คีย์ API ของโปรเจกต์ที่ถูกต้อง) 403 (ผู้ดูแลระบบไม่อนุญาตตารางหรือการกระทำนั้น) 404 (ไม่พบเอนด์พอยต์หรือรายการข้อมูล) 409 (ข้อมูลขัดแย้งกัน เช่น ซ้ำกัน) และ 413 (คำตอบจะใหญ่เกิน 1 MB ให้เปิดเผยฟิลด์น้อยลงหรือใช้หน้าที่เล็กลง)
คำถามที่พบบ่อย
หัวข้อที่มีชื่อว่า “คำถามที่พบบ่อย”ทำไมคลิกเผยแพร่เอกสารไม่ได้
เอกสารต้องมีเอนด์พอยต์ที่ออนไลน์อย่างน้อยหนึ่งตัว และต้องไม่มีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก ติ๊ก เผยแพร่เอนด์พอยต์ ในเอนด์พอยต์ คลิก บันทึกและเผยแพร่เอนด์พอยต์ แล้วคลิก เผยแพร่เอกสาร
ต้องเผยแพร่แอปก่อนไหม API ถึงจะใช้ได้
ไม่ต้อง API อ่านและเขียนฐานข้อมูลของโปรเจกต์โดยตรง จึงใช้ได้ทันทีที่เผยแพร่เอนด์พอยต์ API ใช้ข้อมูลชุดเดียวกับพรีวิวและแอปที่ออนไลน์ และไม่ต้องใช้งานสร้าง AI หรือเครดิตเลย
เว็บไซต์เรียก API จากเบราว์เซอร์ได้ไหม
ได้ เว็บไซต์ใดก็เรียกเอนด์พอยต์ของคุณได้ ใช้เอนด์พอยต์แบบ ทุกคนอ่านได้ จากหน้าเว็บ และเรียกเอนด์พอยต์ที่ป้องกันด้วยคีย์จากเซิร์ฟเวอร์เท่านั้น เพื่อให้คีย์เป็นความลับ
คีย์ API หาย ดูอีกครั้งได้ไหม
ไม่ได้ คีย์แสดงเพียงครั้งเดียว สร้างคีย์ใหม่ เปลี่ยนให้บริการใช้คีย์ใหม่ แล้วคลิก เพิกถอน คีย์เก่า
ทำไมเผยแพร่เอนด์พอยต์ไม่ได้
สำหรับ สร้าง อัปเดต หรือ ลบ ต้องเปิดการกระทำนั้นให้ตารางในผู้ดูแลระบบก่อน และแอปที่ฐานข้อมูลของแอปที่ออนไลน์รันอยู่บนบัญชี Cloudflare ของคุณเองจะเผยแพร่เอนด์พอยต์จาก MonstarX ไม่ได้ เพราะฐานข้อมูลที่นี่เก็บข้อมูลทดลองของพรีวิว
รับ webhook เมื่อข้อมูลเปลี่ยนได้ไหม
ส่วน ผู้ดูแลระบบ → API ทำไม่ได้ เพราะมีไว้ตอบคำขอ ให้ขอ MonstarX เพิ่ม webhook ในแอป เช่น “เมื่อมีคำสั่งซื้อใหม่ ให้ POST ไปที่ที่อยู่นี้”