เมื่อคุณสร้าง frontend, ดีบัก client หรือทดลองไลบรารี HTTP ใหม่ คุณมักต้องมี endpoint ที่คืนค่า JSON หน้าตาเหมือนข้อมูลจริงโดยไม่ต้องตั้ง backend เอง Dummy API ช่วยให้คุณเรียกใช้ API สาธารณะฟรีได้ทันที คู่มือนี้สรุป Dummy API ที่น่าใช้ วิธีเรียกใช้งานในโค้ด และจุดที่ควรเปลี่ยนไปสร้าง Fake REST API ของคุณเอง หากต้องการพื้นฐานเพิ่มเติมเกี่ยวกับการเรียก API ด้วย JavaScript ให้อ่านคู่มือ MDN: Using Fetch API ประกอบได้
Dummy API คืออะไร
Dummy API คือบริการที่โฮสต์ endpoint พร้อมข้อมูล JSON ตัวอย่างไว้ให้แล้ว เช่น ผู้ใช้ โพสต์ สินค้า ตะกร้าสินค้า หรือรายการ todo คุณไม่ต้องสมัครบัญชี ไม่ต้อง deploy backend และไม่ต้องกลัวทำข้อมูลจริงเสียหาย
โดยทั่วไป Dummy API รองรับ HTTP method หลัก ๆ เช่น:
GETPOSTPUTPATCHDELETE
แต่ต้องเข้าใจก่อนว่า request แบบเขียนข้อมูลมักเป็นการจำลองเท่านั้น เช่น POST แล้ว API อาจคืน object พร้อม id ใหม่กลับมา แต่ไม่ได้บันทึกข้อมูลถาวรจริง
ใช้ Dummy API เมื่อคุณต้องการ:
- ทดสอบการเรียก HTTP request
- สร้าง prototype frontend
- ทดลอง state loading/error ใน UI
- เรียนรู้
fetch, Axios หรือ HTTP client ตัวใหม่
ไม่ควรใช้เมื่อคุณต้องการ:
- schema ของข้อมูลที่ควบคุมเอง
- state ที่บันทึกจริง
- error case ที่กำหนดเอง
- mock ที่ตรงกับ OpenAPI spec ของโปรเจกต์
Dummy และ Fake API ฟรีที่ใช้ทดสอบได้ทันที
API ด้านล่างใช้ฟรีและไม่ต้องตั้งค่า backend จากฝั่งคุณ
1. JSONPlaceholder
JSONPlaceholder เป็น Dummy API คลาสสิกสำหรับข้อมูลแนว blog และ social content โดยมี resource หลัก เช่น:
- posts
- comments
- albums
- photos
- todos
- users
เหมาะกับการทดสอบการดึงข้อมูลแบบมีความสัมพันธ์ เช่น post กับ comments หรือ album กับ photos
ลองเรียก endpoint:
curl https://jsonplaceholder.typicode.com/posts/1
ตัวอย่าง JavaScript:
const res = await fetch('https://jsonplaceholder.typicode.com/posts/1');
const post = await res.json();
console.log(post.title);
หากส่ง POST /posts ระบบจะคืน id ปลอม เช่น 101 แต่ข้อมูลจะไม่ถูกบันทึกถาวร
curl -X POST https://jsonplaceholder.typicode.com/posts \
-H "Content-Type: application/json" \
-d '{"title":"Hello","body":"Test post","userId":1}'
2. DummyJSON
DummyJSON มี resource หลากหลายกว่า เหมาะกับ UI ที่ใกล้เคียงแอปจริง เช่น e-commerce หรือ auth flow
มีข้อมูลตัวอย่าง เช่น:
- products
- carts
- users
- posts
- comments
- quotes
- todos
- recipes
ลองเรียกข้อมูลสินค้า:
curl https://dummyjson.com/products/1
ตัวอย่าง frontend:
const res = await fetch('https://dummyjson.com/products/1');
const product = await res.json();
console.log(product.title, product.price);
DummyJSON ยังมี endpoint สำหรับ auth ที่คืน token ให้ใช้ฝึก flow การ login ได้:
const res = await fetch('https://dummyjson.com/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
username: 'emilys',
password: 'emilyspass',
}),
});
const data = await res.json();
console.log(data.accessToken);
เหมาะสำหรับทดลอง:
- login form
- token storage
- authenticated request
- product list
- cart UI
3. reqres.in
reqres.in เหมาะกับการทดสอบ request/response lifecycle เช่น:
- list users
- single user
- register
- login
- delayed response
- pagination
ข้อควรระวัง: free tier ต้องส่ง header API key:
x-api-key: reqres-free-v1
ตัวอย่าง:
curl https://reqres.in/api/users/2 \
-H "x-api-key: reqres-free-v1"
ตัวอย่าง JavaScript:
const res = await fetch('https://reqres.in/api/users/2', {
headers: {
'x-api-key': 'reqres-free-v1',
},
});
const data = await res.json();
console.log(data.data.email);
เลือก Dummy API ให้เหมาะกับงาน
| Dummy API | เหมาะสำหรับ | การยืนยันตัวตน | การคงอยู่ของการเขียน |
|---|---|---|---|
| JSONPlaceholder | การอ่านข้อมูลแบบซ้อนกัน, ข้อมูลแนว blog | ไม่มี | จำลอง, ไม่บันทึก |
| DummyJSON | e-commerce, cart, login flow | มี token | จำลอง, ไม่บันทึก |
| reqres.in | pagination, register/login demo | API key header | จำลอง, ไม่บันทึก |
ถ้าต้องการตัวเลือกมากกว่านี้ อ่านต่อได้ที่ Public API สำหรับการทดสอบ และ รายชื่อ Free Public API สำหรับนักพัฒนา ซึ่งเหมาะเมื่อคุณต้องการข้อมูลเฉพาะหัวข้อ เช่น สภาพอากาศ สกุลเงิน หรือข้อมูลสาธารณะอื่น ๆ
วิธีเรียกใช้ Dummy API ในโค้ด
การเรียก Dummy API เหมือนเรียก HTTP endpoint ปกติ ตัวอย่างด้านล่างใช้ fetch เพื่ออ่านข้อมูลผู้ใช้และส่งข้อมูลผู้ใช้ใหม่
// Read
const res = await fetch('https://dummyjson.com/users/1');
const user = await res.json();
console.log(user.firstName);
// Write: API จะ echo กลับมา แต่ไม่ persist จริง
const created = await fetch('https://dummyjson.com/users/add', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
firstName: 'Ada',
lastName: 'Lovelace',
}),
});
const result = await created.json();
console.log(result); // object พร้อม fake id
ถ้าใช้ Python กับ requests:
import requests
r = requests.get("https://jsonplaceholder.typicode.com/todos/1")
print(r.json())
เพิ่ม error handling เพื่อให้โค้ดใกล้ production มากขึ้น:
async function getProduct(id) {
const res = await fetch(`https://dummyjson.com/products/${id}`);
if (!res.ok) {
throw new Error(`Request failed: ${res.status}`);
}
return res.json();
}
try {
const product = await getProduct(1);
console.log(product.title);
} catch (err) {
console.error(err.message);
}
หากต้องการข้อมูลทดสอบที่ดูเหมือนข้อมูลจริง เช่น ชื่อ อีเมล timestamp หรือ field เฉพาะ อ่าน คู่มือการสร้างข้อมูลทดสอบ API ที่สมจริง
เมื่อ Public Dummy API ไม่เพียงพอ
Public Dummy API ใช้งานเร็วมาก แต่จะเริ่มติดข้อจำกัดเมื่อโปรเจกต์มี requirement เฉพาะขึ้น เช่น:
schema ไม่ตรงกับแอปของคุณ
แอปของคุณอาจต้องการ field อย่างsubscription_tier,billing.addressหรือpermissions[]แต่ JSONPlaceholder มีแค่posts,albums,usersต้องการ state จริง
ตะกร้าสินค้าควรอัปเดตหลังเพิ่มสินค้า แต่ Public Dummy API ส่วนใหญ่จะลืมข้อมูลทันทีหลัง responseต้องการจำลอง error case
เช่น429 Too Many Requests,500 Internal Server Error, response ช้า หรือ payload ผิดรูปแบบfrontend เริ่มก่อน backend เสร็จ
ทีม frontend ต้องการ endpoint ที่ตรงกับ API contract ปัจจุบัน ไม่ใช่ข้อมูลตัวอย่างที่ไม่เกี่ยวกับระบบจริง
เมื่อถึงจุดนี้ คุณควรสร้าง Fake API หรือ Mock API ที่ควบคุมเอง เพื่อให้ response ตรงกับ schema, behavior และ error case ของโปรเจกต์ อ่านเพิ่มเติมได้ที่ Mock API ที่สร้างขึ้นสำหรับการทดสอบ
วิธีสร้าง Fake API ของคุณเองด้วย Apidog
Apidog เป็นแพลตฟอร์ม API สำหรับออกแบบ ทดสอบ ดีบัก และทำ mocking ในที่เดียว จุดสำคัญคือ mock ถูกขับเคลื่อนด้วย schema จึงสามารถสร้างข้อมูลจำลองจากโครงสร้าง endpoint ได้อัตโนมัติ
ขั้นตอนแบบสั้นจาก เอกสาร Mock API Data in Apidog:
สร้างหรือนำเข้า endpoint
สร้าง API ใหม่ใน Apidog หรือนำเข้าไฟล์ OpenAPI/Swagger ที่มีอยู่กำหนด schema ของ response
ระบุ field, type และโครงสร้างข้อมูล เช่น:
{
"id": 1,
"email": "user@example.com",
"createdAt": "2026-06-24T10:00:00Z",
"price": 199
}
-
ให้ smart mock สร้างข้อมูล
Apidog สามารถสร้างค่าตามชื่อและชนิดของ field ได้ เช่น:-
email→ อีเมล -
createdAt→ timestamp -
price→ ตัวเลข -
country→ ชื่อประเทศ หากตั้ง rule ให้เหมาะสม
-
เรียกใช้ mock URL
เมื่อเปิด mock server แล้ว คุณสามารถเรียก endpoint จาก frontend, test script หรือcurlได้เหมือนเรียก Public Dummy API
curl https://your-mock-url.example.com/users/1
-
เพิ่ม conditional response และ error case
ตั้งค่า mock ให้คืน response หลายแบบ เช่น:
200 OK404 Not Found500 Internal Server Error- response delay
- payload สำหรับ edge case
เพราะ mock ถูกสร้างจาก spec ของคุณ เมื่อ API design เปลี่ยน mock ก็อัปเดตตาม contract ได้ง่ายขึ้น หากต้องการดูรายละเอียดการ mock จาก OpenAPI schema อ่าน คำแนะนำการสร้างข้อมูล mock จาก OpenAPI Schemas
Public Dummy API เทียบกับ Apidog Mock
| ความต้องการ | Public Dummy API | Apidog Mock |
|---|---|---|
| ต้องการ JSON เร็ว ๆ สำหรับทดลอง | ดีมาก | ดีมาก |
| schema ตรงกับโปรเจกต์ | ไม่ | ได้ |
| custom error และ delay | ไม่ | ได้ |
| ตรงกับ OpenAPI contract | ไม่ | ได้ |
| เวลา setup | แทบเป็นศูนย์ | ไม่กี่นาที |
แนวทางที่ใช้ได้จริงคือใช้ทั้งสองแบบ:
- ใช้ Public Dummy API สำหรับทดลองเร็ว ๆ หรือเรียนรู้ HTTP client
- ใช้ Apidog Mock เมื่อเริ่มทำฟีเจอร์จริงที่ต้องตรงกับ API contract
คำถามที่พบบ่อย
Dummy API เหมือนกับ Mock API หรือไม่?
ใกล้เคียงกันแต่ไม่เหมือนกันทั้งหมด Dummy API มักหมายถึง API สาธารณะที่มีข้อมูลตัวอย่างให้ใช้ร่วมกัน เช่น JSONPlaceholder ส่วน Mock API คือ API ที่คุณกำหนดเองเพื่อจำลอง schema และ behavior ของระบบคุณ
ถ้าต้องการรายละเอียดเพิ่มเติม อ่าน Mock API คืออะไร
Fake API ฟรีปลอดภัยสำหรับข้อมูลจริงหรือไม่?
ไม่ควรใช้กับข้อมูลจริง ห้ามส่งข้อมูลผู้ใช้จริง secret token หรือ credential ไปยัง Public Dummy API ให้ถือว่าทุกอย่างที่คุณส่งออกไปอาจถูกบันทึกหรือมองเห็นได้ ใช้เฉพาะข้อมูลทดสอบที่ไม่มีความลับเท่านั้น
Dummy API บันทึกข้อมูลที่ส่งไปหรือไม่?
โดยทั่วไปไม่บันทึกถาวร JSONPlaceholder, DummyJSON และ reqres.in อาจรับ POST, PUT หรือ PATCH แล้วคืน response พร้อม fake ID แต่ข้อมูลจะไม่ถูก persist จริง
ถ้าต้องการ state ที่คงอยู่ ต้องใช้ stateful mock หรือ backend จริง
สร้าง Fake API โดยไม่ต้องเขียนโค้ดได้ไหม?
ได้ ด้วย Apidog คุณสามารถกำหนด endpoint, schema และ mock response โดยไม่ต้องเขียน server เอง หรือจะนำเข้า OpenAPI file แล้วสร้าง mock endpoint จาก contract ที่มีอยู่ก็ได้
สรุป
Public Dummy API เช่น JSONPlaceholder, DummyJSON และ reqres.in เป็นวิธีที่เร็วที่สุดในการได้ JSON สำหรับ prototype, demo และการเรียนรู้ HTTP request แต่เมื่อคุณต้องการ schema ของตัวเอง state จริง หรือ error case ที่ควบคุมได้ ควรสร้าง Fake API หรือ Mock API ของโปรเจกต์เอง
Apidog ช่วยให้คุณนำเข้า spec, สร้าง mock จาก schema และเรียก endpoint ได้ในไม่กี่นาที ดาวน์โหลด Apidog เพื่อเปลี่ยน API contract ถัดไปของคุณให้เป็น mock ที่ใช้งานได้ก่อน backend พร้อมจริง

Top comments (0)