หน้าแรก / บทความ / พื้นฐานเว็บ

API Gateway คืออะไร? สร้างประตูจำลองด้วย Node.js ลองเช็กคีย์ จำกัดจำนวน และชี้ทาง

เข้าใจ API ตั้งแต่ศูนย์ รู้ว่า API Gateway ทำอะไรทีละด่าน แล้วสร้างประตูจำลองในเครื่องด้วย Node.js ลองยิงคำขอจนเห็นรหัส 200, 401, 429, 404 และ 502 ด้วยตาตัวเอง ไม่ต้องติดตั้งไลบรารีหรือสมัครบริการใด

แอปส่วนใหญ่ไม่ได้คุยกับเซิร์ฟเวอร์ตัวเดียว เบื้องหลังมีทั้งบริการผู้ใช้ เมนู ออเดอร์ จ่ายเงิน และแจ้งเตือน ถ้าแอปต้องจำที่อยู่ของทุกตัว และทุกตัวต้องเช็กคีย์เองกันคนยิงรัวเอง ระบบจะยุ่งและพลาดง่ายมาก API Gateway คือคำตอบของปัญหานี้ เป็นประตูบานเดียวที่ตั้งไว้หน้าบริการทั้งหมด

บทความนี้เริ่มจากศูนย์ ตั้งแต่ API คืออะไร Gateway ทำอะไรทีละด่าน แล้วลงมือสร้างประตูจำลองในเครื่องตัวเองด้วย Node.js ไม่ต้องติดตั้งไลบรารีเพิ่ม ไม่ต้องสมัครบริการไหน แล้วลองยิงคำขอจนเห็นรหัส 200, 401, 429, 404 และ 502 ด้วยตาตัวเอง

จบบทความนี้คุณจะ:

  • อธิบายได้ว่า API คืออะไร และคำขอกับคำตอบหน้าตาเป็นยังไง
  • รู้ว่า API Gateway ทำหน้าที่อะไร และเมื่อไรถึงคุ้มที่จะมี
  • เข้าใจสามด่านหลักของประตู คือเช็กบัตร จำกัดจำนวน และชี้ทาง
  • สร้างบริการหลังบ้านกับประตูจำลองด้วย Node.js แล้วยิงคำขอทดสอบได้เอง
  • แก้ค่าในประตูเอง และรู้จัก Gateway ตัวจริงอย่าง Amazon API Gateway กับ Kong

API คืออะไร

API คือช่องทางที่โปรแกรมหนึ่งใช้ขอข้อมูลหรือสั่งงานอีกโปรแกรม นึกถึงการสั่งอาหารผ่านพนักงานครับ เราไม่ต้องเข้าครัวเอง แค่บอกว่าอยากได้อะไร แล้วรอของมา

เรื่องในร้านอาหารในแอป
คนขอลูกค้าแอปมือถือหรือเว็บ (client)
คำขอ"ขอดูเมนูหน่อย"GET /menu
คนตอบครัวเซิร์ฟเวอร์ (server)
คำตอบเมนูที่ยื่นให้ข้อมูล JSON พร้อมรหัสสถานะ

หน้าตาของคำขอกับคำตอบจริงๆ เป็นแบบนี้

คำขอ (request)
GET /menu
x-api-key: devkub-123
คำตอบ (response)
200 OK
{ "name": "ข้าวมันไก่", "price": 50 }
  • GET คือ "ขอดู"
  • /menu คือ path บอกว่าขออะไร
  • x-api-key คือ header ที่แนบไปด้วย ในที่นี้คือคีย์ยืนยันตัว
  • 200 คือรหัสบอกผล ตัวเลขขึ้นต้นด้วย 2 แปลว่าสำเร็จ ขึ้นต้นด้วย 4 แปลว่าฝั่งคนขอผิด และขึ้นต้นด้วย 5 แปลว่าฝั่งเซิร์ฟเวอร์มีปัญหา (อ่านเรื่องรหัสสถานะแบบละเอียดได้ในบทความ HTTP status code)

สรุปสั้นๆ API ก็คือเมนูที่บอกว่าขออะไรได้บ้าง และต้องขอยังไง

ศัพท์ที่ต้องรู้

คำความหมายแบบมือใหม่เทียบกับ
Clientตัวที่ส่งคำขอ เช่น แอปหรือเว็บคนที่เดินเข้าตึก
Server / Serviceโปรแกรมที่ตอบคำขอ หนึ่งตัวทำงานหนึ่งเรื่องห้องแต่ละห้อง
Endpoint / Pathที่อยู่ของงาน เช่น /menu หรือ /payป้ายชื่อห้อง
MethodGET ขอดู, POST ส่งของใหม่, PUT แก้, DELETE ลบบอกว่ามาทำอะไร
Headerข้อมูลที่แนบไปกับคำขอ เช่น คีย์บัตรที่ถือมา
JSONรูปแบบข้อมูลแบบ {"ชื่อ": ค่า}ข้อความที่ส่งกลับ
API key / Tokenรหัสยืนยันว่าเป็นใครบัตรผ่าน
Rate limitจำนวนคำขอสูงสุดต่อช่วงเวลาด่านจำกัดจำนวน
Routingเลือกว่าคำขอนี้ไปห้องไหนด่านชี้ทาง
Portเลขช่องของโปรแกรมในเครื่อง เช่น 3000เลขประตู
localhostเครื่องของคุณเองตึกจำลองในเครื่อง

รหัสสถานะที่จะได้เห็นในแล็บนี้มี 5 ตัว

รหัสแปลว่าเกิดตอนไหนในแล็บ
200 OKสำเร็จผ่านครบสามด่าน
401 Unauthorizedยืนยันตัวไม่ผ่านไม่มีคีย์ หรือคีย์ผิด
429 Too Many Requestsขอถี่เกินไปเกิน 5 ครั้งใน 10 วินาที
404 Not Foundไม่มีสิ่งที่ขอpath ไม่มีในตารางห้อง
502 Bad Gatewayประตูส่งต่อแล้ว แต่ห้องไม่ตอบปิดห้องหลังบ้านไว้

API Gateway คืออะไร

API Gateway คือโปรแกรมที่ตั้งไว้ด้านหน้าบริการทั้งหมด คำขอทุกอันต้องเข้าที่นี่ก่อน แล้วมันส่งต่อให้บริการที่ถูกต้อง หน้าเว็บของ Amazon API Gateway อธิบายว่า API เป็นเหมือน "front door" ของแอป คือประตูหน้าที่ทุกคนต้องผ่าน

แอปส่งคำขอมาที่ประตูบานเดียว ประตูเช็กบัตร จำกัดจำนวน และชี้ทาง แล้วส่งต่อไปห้องเมนู ห้องออเดอร์ หรือห้องจ่ายเงิน
แอปรู้แค่ที่อยู่ของประตู ที่เหลือประตูจัดการให้
เรื่องไม่มี Gatewayมี Gateway
แอปต้องรู้ที่อยู่ของทุกบริการที่อยู่เดียว
เช็กคีย์ทุกบริการเขียนเองทำที่ประตูครั้งเดียว
กันคนยิงรัวต้องทำทุกตัวทำที่ประตูครั้งเดียว
ย้ายหรือแยกบริการต้องแก้แอปแก้ตารางชี้ทางที่ประตู

โปรเจกต์เล็กยังไม่ต้องมีก็ได้ ถ้ามีเซิร์ฟเวอร์ตัวเดียว Gateway อาจเป็นภาระเกินจำเป็น มันเริ่มคุ้มเมื่อมีหลายบริการ หรือเมื่อเปิด API ให้คนนอกใช้

สามด่านทำงานยังไง

คำขอหนึ่งอันเดินผ่านประตูแบบนี้

  1. แอปส่งคำขอมาที่ประตู เช่น GET /menu พร้อม header x-api-key
  2. ด่าน 1 เช็กบัตร (authentication) ดูว่ามีคีย์และคีย์ถูกไหม ไม่ผ่านตอบ 401 ทันที ไม่ไปถึงห้องเลย
  3. ด่าน 2 จำกัดจำนวน (rate limiting) นับว่าคีย์นี้ขอมากี่ครั้งในช่วงเวลาหนึ่ง เกินลิมิตตอบ 429 ให้รอก่อน กันระบบล่มจากคนยิงรัว
  4. ด่าน 3 ชี้ทาง (routing) ดู path แล้วเปิดตารางว่าต้องไปห้องไหน /menu ไปห้องเมนู /pay ไปห้องจ่ายเงิน ไม่มีในตารางตอบ 404
  5. ส่งต่อแล้วรับคำตอบกลับ ประตูส่งคำขอให้ห้อง รอคำตอบ แล้วยื่นคืนให้แอป แอปไม่ต้องรู้เลยว่าห้องอยู่ตรงไหน
คำขอผ่านด่านเช็กบัตร จำกัดจำนวน และชี้ทางตามลำดับ ไม่ผ่านด่านไหนก็ถูกตีกลับด้วย 401 429 หรือ 404 ผ่านครบได้ 200 ส่วนห้องไม่ตอบได้ 502
ไม่ผ่านด่านไหน ก็ถูกตีกลับตรงนั้นทันที

ทำไมต้องเช็กบัตรก่อน เพราะคำขอที่ไม่มีบัตรไม่ควรเปลืองแรงนับหรือส่งต่อ ตีกลับได้เร็วที่สุดยิ่งดี ของจริงยังทำอย่างอื่นได้อีก เช่น เก็บ log แคชคำตอบ หรือแปลงรูปแบบข้อมูล แต่สามด่านนี้คือหัวใจที่ช่วยให้เห็นภาพรวม

รหัสอาจต่างกันในแต่ละบริการ 401 และ 429 เป็นรหัส HTTP มาตรฐาน (401 อยู่ใน RFC 9110 และ 429 อยู่ใน RFC 6585) แต่แต่ละบริการตั้งได้ต่างกัน เช่น บางเจ้าตอบ 403 ตอนคีย์ผิด ให้ดูเอกสารของเจ้าที่ใช้

เตรียมเครื่อง

แล็บนี้ใช้ได้ทั้ง Windows และ macOS ต้องมีแค่ 2 อย่าง

1. Node.js เข้า nodejs.org โหลดรุ่น LTS แล้วติดตั้งตามปกติ (Windows ใช้ไฟล์ .msi ส่วน macOS ใช้ไฟล์ .pkg) จากนั้นปิดแล้วเปิดหน้าต่างคำสั่งใหม่ เช็กด้วย

Windows: PowerShell / macOS: Terminal
node -v
ผลลัพธ์ประมาณนี้
v26.x.x

เลขรุ่นต่างไปได้ ขอแค่ขึ้นเลข ณ ต.ค. 2026 รุ่น LTS ล่าสุดคือ v26

2. curl ตัวยิงคำขอ มีมาในเครื่องอยู่แล้วทั้ง Windows 10/11 และ macOS

Windows: PowerShell
curl.exe --version
macOS: Terminal
curl --version
ผลลัพธ์ประมาณนี้
curl 8.x.x ...

บน Windows PowerShell ให้พิมพ์ curl.exe เสมอ ใน Windows PowerShell 5.1 คำว่า curl เฉยๆ คือชื่อเล่นของคำสั่งอื่น (Invoke-WebRequest) ที่รับตัวเลือกไม่เหมือนกัน พิมพ์ curl.exe จะได้ curl ตัวจริงเสมอ

สุดท้ายสร้างโฟลเดอร์ฝึก

PowerShell หรือ Terminal
mkdir gateway-lab
cd gateway-lab

เปิดโฟลเดอร์นี้ด้วยโปรแกรมแก้ไขข้อความ เช่น VS Code, Notepad หรือ TextEdit (ตั้งเป็น Plain text) แล้วบันทึกไฟล์เป็น UTF-8 ทุกครั้ง

สร้างห้องหลังบ้าน

ไฟล์แรกเปิดห้อง 3 ห้องที่พอร์ต 4001, 4002 และ 4003 แต่ละห้องตอบ JSON ของตัวเอง ใช้แค่โมดูล http ที่มากับ Node.js ไม่ต้องติดตั้งอะไรเพิ่ม

gateway-lab/services.js
// ห้องหลังบ้าน 3 ห้อง: เมนู ออเดอร์ จ่ายเงิน
const http = require('http');
const room = (port, data) =>
  http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'application/json; charset=utf-8'});
    res.end(JSON.stringify(data));
  }).listen(port, () => console.log('ห้องพร้อมที่พอร์ต', port));
 
room(4001, {room: 'menu', items: [{name: 'ข้าวมันไก่', price: 50}]});
room(4002, {room: 'orders', orders: []});
room(4003, {room: 'pay', status: 'ready'});
หน้าต่างที่ 1 (ในโฟลเดอร์ gateway-lab)
node services.js
ผลลัพธ์ที่ควรเห็น
ห้องพร้อมที่พอร์ต 4001
ห้องพร้อมที่พอร์ต 4002
ห้องพร้อมที่พอร์ต 4003

เห็นสามบรรทัดนี้แปลว่าห้องเปิดแล้ว ปล่อยหน้าต่างนี้ไว้ อย่าปิด ในระบบจริงแต่ละห้องคือบริการแยกกัน อาจอยู่คนละเครื่อง ในแล็บเราจำลองด้วยการใช้คนละพอร์ต

สร้างประตู

ไฟล์ที่สองคือตัวประตู มีครบทั้งสามด่าน

gateway-lab/gateway.js
// ประตูหน้า: เช็กบัตร -> จำกัดจำนวน -> ชี้ทาง
const http = require('http');
 
const KEY = 'devkub-123';    // คีย์ที่ยอมให้ผ่าน
const LIMIT = 5;             // ได้กี่ครั้ง
const WINDOW_MS = 10000;     // ต่อกี่มิลลิวินาที (10 วินาที)
const ROUTES = {             // path -> ห้องไหน
  '/menu': 4001,
  '/orders': 4002,
  '/pay': 4003,
};
const hits = {};             // นับคำขอของแต่ละคีย์
 
http.createServer((req, res) => {
  const send = (code, body) => {
    res.writeHead(code, {'Content-Type': 'application/json; charset=utf-8'});
    res.end(JSON.stringify(body));
    console.log(req.method, req.url, '->', code);
  };
 
  // ด่าน 1 เช็กบัตร
  const key = req.headers['x-api-key'];
  if (key !== KEY) return send(401, {error: 'ไม่มีคีย์ หรือคีย์ผิด'});
 
  // ด่าน 2 จำกัดจำนวน
  const now = Date.now();
  hits[key] = (hits[key] || []).filter((t) => now - t < WINDOW_MS);
  if (hits[key].length >= LIMIT) return send(429, {error: 'รัวเกินไป รอก่อน'});
  hits[key].push(now);
 
  // ด่าน 3 ชี้ทาง
  const port = ROUTES[req.url];
  if (!port) return send(404, {error: 'ไม่มีห้องนี้'});
 
  http.get({port, path: '/'}, (r) => {
    let data = '';
    r.on('data', (c) => (data += c));
    r.on('end', () => send(r.statusCode, JSON.parse(data)));
  }).on('error', () => send(502, {error: 'ห้องหลังบ้านไม่ตอบ'}));
}).listen(3000, () => console.log('ประตูเปิดที่ http://localhost:3000'));

เปิดหน้าต่างคำสั่งใหม่ เข้าโฟลเดอร์ gateway-lab ก่อน แล้วรันประตู

หน้าต่างที่ 2
node gateway.js
ผลลัพธ์ที่ควรเห็น
ประตูเปิดที่ http://localhost:3000

อ่านโค้ดประตูทีละส่วน

ส่วนทำอะไร
KEYคีย์เดียวที่ยอมให้ผ่าน ในของจริงต้องเก็บเป็นความลับ ไม่เขียนลงโค้ด
LIMIT + WINDOW_MSได้ 5 ครั้งต่อ 10 วินาที ต่อหนึ่งคีย์
ROUTESตารางชี้ทาง path ไหนไปพอร์ตไหน
hitsจดเวลาของคำขอแต่ละคีย์ แล้วทิ้งอันที่เก่ากว่า 10 วินาที
req.headers['x-api-key']ด่าน 1 อ่านบัตรจาก header ผิดหรือไม่มีตอบ 401
hits[key].length >= LIMITด่าน 2 ครบลิมิตแล้วตอบ 429
ROUTES[req.url]ด่าน 3 หาห้องไม่เจอตอบ 404
http.get(...)ส่งต่อไปห้อง รับ JSON แล้วยื่นคืน ถ้าห้องไม่ตอบ ตอบ 502
console.logพิมพ์ log ทุกคำขอ เห็นว่าใครโดนตีกลับที่ด่านไหน

ประตูนี้ไว้เรียนเท่านั้น ตัวนับเก็บในหน่วยความจำ ปิดโปรแกรมแล้วก็หาย และไม่มี HTTPS ห้ามเอาไปใช้กับระบบจริง ระบบจริงใช้ Gateway สำเร็จรูปในหัวข้อของจริงที่ใช้กัน ลองคิดดูว่าถ้าลบด่าน 1 ทิ้ง ใครก็เดินเข้าห้องจ่ายเงินได้ นี่คือเหตุผลที่ต้องเช็กบัตรที่ประตู

ลองยิงคำขอผ่านสามด่าน

เปิดหน้าต่างที่ 3 ไว้ยิงคำขอ คำสั่งด้านล่างเขียนสำหรับ Windows PowerShell ถ้าใช้ macOS ให้พิมพ์ curl แทน curl.exe

1) ไม่มีบัตร

หน้าต่างที่ 3
curl.exe -i http://localhost:3000/menu
ผลลัพธ์ที่ควรเห็น
HTTP/1.1 401 Unauthorized
...
{"error":"ไม่มีคีย์ หรือคีย์ผิด"}

2) มีบัตร ขอเมนู

หน้าต่างที่ 3
curl.exe -H "x-api-key: devkub-123" http://localhost:3000/menu
ผลลัพธ์ที่ควรเห็น
{"room":"menu","items":[{"name":"ข้าวมันไก่","price":50}]}

3) ชี้ทางไปห้องจ่ายเงิน

หน้าต่างที่ 3
curl.exe -H "x-api-key: devkub-123" http://localhost:3000/pay
ผลลัพธ์ที่ควรเห็น
{"room":"pay","status":"ready"}

4) ห้องที่ไม่มี

หน้าต่างที่ 3
curl.exe -H "x-api-key: devkub-123" http://localhost:3000/abc
ผลลัพธ์ที่ควรเห็น
{"error":"ไม่มีห้องนี้"}

5) ยิงรัว 6 ครั้ง ดูด่านจำกัดจำนวนทำงาน

Windows PowerShell
for ($i=1; $i -le 6; $i++) { curl.exe -s -o NUL -w "%{http_code} " -H "x-api-key: devkub-123" http://localhost:3000/orders }
macOS Terminal
for i in 1 2 3 4 5 6; do curl -s -o /dev/null -w "%{http_code} " -H "x-api-key: devkub-123" http://localhost:3000/orders; done
ผลลัพธ์ที่ควรเห็น
200 200 429 429 429 429

ทำไมผ่านแค่ 2 ครั้ง เพราะข้อ 2–4 ใช้โควตาไปแล้ว 3 ครั้ง (ข้อ 4 ที่ได้ 404 ก็นับ เพราะผ่านด่าน 2 มาก่อนถึงด่าน 3) รวมเป็น 5 ครั้งใน 10 วินาทีพอดี ส่วนข้อ 1 ที่ได้ 401 ไม่ถูกนับ เพราะโดนตีกลับตั้งแต่ด่านแรก ถ้าทำช้ากว่า 10 วินาที ตัวเลขอาจต่างไปเล็กน้อย รอ 10 วินาทีแล้วยิงใหม่จะได้ 200 อีกครั้ง

กลับไปดูหน้าต่างที่ 2 จะเห็น log ของทุกคำขอ

หน้าต่างที่ 2 (log ของประตู)
GET /menu -> 401
GET /menu -> 200
GET /pay -> 200
GET /abc -> 404
GET /orders -> 200
GET /orders -> 200
GET /orders -> 429
...

แบบฝึกและแก้ปัญหา

แก้ไฟล์แล้วต้องหยุดโปรแกรมด้วย Ctrl + C แล้วรันใหม่ทุกครั้ง

ข้อลองทำควรได้
1เปลี่ยน LIMIT เป็น 2 แล้วรันประตูใหม่ ยิงรัว 4 ครั้ง200 200 429 429
2เพิ่มห้องที่ 4: ใน services.js เพิ่ม room(4004, {room: 'notify'}); และใน ROUTES เพิ่ม '/notify': 4004,ยิง /notify ได้ {"room":"notify"}
3ส่งคีย์ผิด เช่น x-api-key: abc401
4กด Ctrl + C ปิดหน้าต่างที่ 1 แล้วยิง /menu ด้วยคีย์ถูก502 ห้องหลังบ้านไม่ตอบ
5ย้ายห้องเมนูไปพอร์ต 4010 แก้แค่ services.js กับ ROUTESคำสั่ง curl เดิมยังใช้ได้

ข้อ 5 คือข้อดีของประตูที่เห็นชัดที่สุด ห้องย้ายที่ได้โดยแอปไม่ต้องรู้เรื่องเลย

ถ้าเจอปัญหา ดูตารางนี้

อาการน่าจะเป็นเพราะทำยังไง
node ไม่รู้จักคำสั่งยังไม่ติดตั้ง หรือยังไม่เปิดหน้าต่างใหม่ติดตั้งรุ่น LTS แล้วปิดเปิดหน้าต่างคำสั่ง
EADDRINUSE: address already in useพอร์ตถูกใช้อยู่ หรือรันซ้ำปิดหน้าต่างเก่า หรือเปลี่ยนเลขพอร์ต (ถ้าเปลี่ยน 3000 ต้องเปลี่ยนในคำสั่ง curl ด้วย)
Failed to connectประตูยังไม่เปิดรัน node gateway.js ในหน้าต่างที่ 2
ได้ 401 ทั้งที่ใส่คีย์ชื่อ header หรือคีย์พิมพ์ผิดต้องเป็น x-api-key: devkub-123 ตรงทุกตัว
ได้ 502หน้าต่างห้องหลังบ้านปิดอยู่รัน node services.js ใหม่
PowerShell ฟ้อง error กับ -Hพิมพ์ curl แทน curl.exeใช้ curl.exe
ภาษาไทยเพี้ยนบันทึกไฟล์ไม่ใช่ UTF-8บันทึกใหม่เป็น UTF-8
ได้ 429 ตลอดยังไม่ครบ 10 วินาทีรอแล้วลองใหม่

เลิกแล้วกด Ctrl + C ในหน้าต่างที่ 1 และ 2 แล้วลบโฟลเดอร์ gateway-lab ได้เลย ไม่มีอะไรค้างในเครื่อง

ของจริงที่ใช้กัน

ระบบจริงไม่เขียนประตูเอง แต่ใช้ Gateway สำเร็จรูปที่ทำสามด่านนี้ได้ดีกว่ามาก พร้อม HTTPS, log และฟีเจอร์อื่นๆ สองตัวที่ใช้กันแพร่หลายคือ

เรื่องAmazon API GatewayKong Gateway
แบบบริการบนคลาวด์ของ AWSมีรุ่นโอเพนซอร์สที่ติดตั้งเองได้
ดูแลเครื่องAWS ดูแลให้เราดูแลเอง
ค่าใช้จ่ายจ่ายตามจำนวนคำขอที่รับและข้อมูลที่ส่งออก ไม่มีค่าขั้นต่ำรุ่นโอเพนซอร์สไม่เสียค่าโปรแกรม แต่ค่าเครื่องเราจ่ายเอง

ข้อมูลในตารางมาจากหน้าเว็บทางการ ณ ต.ค. 2026 เรายังไม่ได้ติดตั้ง Kong หรือเปิด Amazon API Gateway ลองเอง ราคาและฟีเจอร์ให้เชื่อหน้าเว็บ ณ วันที่คุณอ่าน

สรุป

  • API คือการส่งคำขอ (method + path + header) แล้วได้คำตอบ (รหัสสถานะ + JSON)
  • API Gateway คือประตูบานเดียวหน้าบริการทั้งหมด แอปรู้แค่ที่อยู่เดียว
  • ด่าน 1 เช็กบัตร ไม่ผ่านได้ 401 ด่าน 2 จำกัดจำนวน เกินได้ 429 ด่าน 3 ชี้ทาง ไม่มีห้องได้ 404
  • ประตูส่งต่อแล้วห้องไม่ตอบได้ 502
  • โปรเจกต์เล็กเซิร์ฟเวอร์เดียวยังไม่จำเป็นต้องมี Gateway มันคุ้มเมื่อมีหลายบริการหรือเปิด API ให้คนนอก
เรื่องจำแค่นี้
APIส่งคำขอ ได้คำตอบกลับ
Gatewayประตูเดียวหน้าบริการทั้งหมด
ด่าน 1เช็กบัตร ไม่ผ่าน 401
ด่าน 2จำกัดจำนวน เกิน 429
ด่าน 3ชี้ทางตาม path ไม่มีห้อง 404

อ่านต่อจากหน้าทางการ

พร้อมแล้วก็ไปทำ Quiz ท้ายบทด้านล่างเพื่อรับ XP ได้เลยครับ

Quiz ท้ายบท

5 ข้อ · ข้อละ 10 XP

ทดสอบความเข้าใจเรื่อง API Gateway ตอบถูกข้อละ 10 XP

  • 5 ข้อ
  • ไม่จับเวลา
  • เฉลยทันทีทุกข้อ