0Pricing
AI SaaS Builder · บทเรียน

การออกแบบ RESTful API

สร้าง API ที่มีโครงสร้างดีและมีประสิทธิภาพ เพื่อการสื่อสารที่ราบรื่นระหว่างส่วนหน้าและส่วนหลัง

การออกแบบ RESTful API เป็นบทเรียน AI SaaS Builder ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI SaaS Builder และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI SaaS Builder มีบทเรียนทั้งหมด 4 บทเรียน

API: ช่องทางสื่อสารของแอป

ในซอฟต์แวร์สมัยใหม่ ส่วนต่าง ๆ ของแอปพลิเคชันมักจำเป็นต้องสื่อสารระหว่างกัน โดยเฉพาะ AI SaaS ที่ส่วนหน้า (สิ่งที่ผู้ใช้มองเห็น) ต้องโต้ตอบกับส่วนหลัง AI ที่ทรงพลังของคุณ

API (ส่วนติดต่อการเขียนโปรแกรมแอปพลิเคชัน) เปรียบได้กับเมนูในร้านอาหาร ซึ่งแสดงรายการอาหาร (ฟังก์ชัน) ที่คุณสั่งได้ พร้อมอธิบายว่าต้องระบุส่วนผสม (พารามิเตอร์) ใดบ้าง และจะได้รับอะไรกลับมา (ผลลัพธ์)

สำหรับแอปพลิเคชันบนเว็บ API แบบ RESTful เป็นวิธีที่ใช้กันมากที่สุดในการให้ระบบส่วนหน้าและส่วนหลังสื่อสารกันผ่านอินเทอร์เน็ต

REST คืออะไร

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

ลองนึกภาพว่า REST คือพิมพ์เขียวที่กำหนดว่าส่วนหลังของคุณควรให้บริการแก่แอปพลิเคชันอื่นอย่างไร การปฏิบัติตามหลักการของ REST ทำให้ API มีคุณสมบัติดังนี้:

  • รองรับการขยายขนาด: รองรับคำขอได้มากขึ้น
  • ยืดหยุ่น: พัฒนาและปรับเปลี่ยนได้ง่าย
  • ดูแลรักษาง่าย: ทำความเข้าใจและแก้ไขได้ง่ายกว่า

แนวคิดหลักคือการมองทุกสิ่งเป็น 'ทรัพยากร'

หลักการสำคัญของ REST

REST อาศัยหลักการสำคัญหลายประการเพื่อให้ได้ประโยชน์ดังกล่าว:

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

ทรัพยากร: คำนามของ API ของคุณ

หลักการ 'ส่วนติดต่อแบบสม่ำเสมอ' หมายความว่า API ของคุณควรมุ่งเน้นที่ทรัพยากร ทรัพยากรคือข้อมูลใด ๆ ที่สามารถระบุชื่อได้ เช่น ผู้ใช้ สินค้า หรือคำสั่งซื้อ

ขณะออกแบบ ให้มองทรัพยากรเป็นคำนาม ไม่ใช่คำกริยา จุดปลายทางของ API (URL) ควรสะท้อนคำนามเหล่านี้ โดยทั่วไปจะใช้รูปพหูพจน์

  • แทนที่จะใช้ /getUser ให้ใช้ /users
  • แทนที่จะใช้ /createProduct ให้ใช้ /products
  • แทนที่จะใช้ /deleteOrder/123 ให้ใช้ /orders/123

วิธีนี้ทำให้ API เข้าใจง่ายและสม่ำเสมอ

เมธอด HTTP: การกระทำ

เมื่อคุณมีทรัพยากรแล้ว (เช่น /products) คุณจะใช้เมธอด HTTP มาตรฐานเพื่อดำเนินการกับทรัพยากรเหล่านั้น เมธอดเหล่านี้เปรียบเสมือนคำกริยาสำหรับคำนามของคุณ

  • GET: ดึงข้อมูล (เช่น GET /products เพื่อดึงสินค้าทั้งหมด)
  • POST: สร้างข้อมูลใหม่ (เช่น POST /products เพื่อเพิ่มสินค้าใหม่)
  • PUT: อัปเดตหรือแทนที่ข้อมูลที่มีอยู่ (เช่น PUT /products/123 เพื่ออัปเดตสินค้า 123)
  • DELETE: ลบข้อมูล (เช่น DELETE /products/123 เพื่อลบสินค้า 123)

นอกจากนี้ยังมี PATCH สำหรับการอัปเดตข้อมูลบางส่วน แต่ทั้งสี่เมธอดนี้เป็นพื้นฐานที่สำคัญที่สุด

ตัวอย่าง: การดึงข้อมูล (GET)

มาดูกันว่าไคลเอ็นต์จะโต้ตอบกับ API แบบ RESTful เพื่อดึงข้อมูลโดยใช้เมธอด GET ได้อย่างไร

ในที่นี้ เราจะดึงโพสต์รายการหนึ่งจาก API สาธารณะสำหรับการทดสอบ URL /posts/1 ระบุทรัพยากรได้อย่างชัดเจน

import requests

# Define the API endpoint for a specific post
url = "https://jsonplaceholder.typicode.com/posts/1"

# Send a GET request
response = requests.get(url)

# Check if the request was successful (status code 200)
if response.status_code == 200:
  print("Successfully retrieved data:")
  print(response.json())
else:
  print(f"Error: {response.status_code} - {response.text}")

ตัวอย่าง: การสร้างข้อมูล (POST)

หากต้องการสร้างทรัพยากรใหม่ เราจะใช้เมธอด POST โดยส่งข้อมูลใหม่ไปในเนื้อหาคำขอ ซึ่งโดยทั่วไปจะอยู่ในรูปแบบ JSON

สังเกตว่าเราโพสต์ไปยังจุดปลายทางของทรัพยากรแบบพหูพจน์ (/posts) โดยไม่มี ID เนื่องจากเซิร์ฟเวอร์จะกำหนดหมายเลขให้เอง

import requests
import json

# Define the API endpoint for creating posts
url = "https://jsonplaceholder.typicode.com/posts"

# Define the data for the new post
new_post_data = {
  "title": "CoddyKit Lesson",
  "body": "This is a new post from CoddyKit!",
  "userId": 1
}

# Send a POST request with the JSON data
response = requests.post(url, json=new_post_data)

# Check if the request was successful (status code 201 Created)
if response.status_code == 201:
  print("Successfully created post:")
  print(response.json())
else:
  print(f"Error: {response.status_code} - {response.text}")

รหัสสถานะ HTTP: ผลตอบกลับจาก API

หลังจากได้รับคำขอ API จะส่งรหัสสถานะ HTTP กลับมา ตัวเลขสามหลักนี้แจ้งให้ไคลเอ็นต์ทราบว่าคำขอสำเร็จหรือไม่ เกิดข้อผิดพลาดหรือไม่ และเป็นข้อผิดพลาดประเภทใด

  • 2xx สำเร็จ: 200 OK (สำเร็จทั่วไป), 201 Created (สร้างทรัพยากรแล้ว), 204 No Content (สำเร็จ แต่ไม่มีข้อมูลส่งกลับ)
  • 4xx ข้อผิดพลาดของไคลเอ็นต์: 400 Bad Request (คำขอมีรูปแบบไม่ถูกต้อง), 401 Unauthorized (ไม่มีการยืนยันตัวตน), 403 Forbidden (ยืนยันตัวตนแล้วแต่ไม่มีสิทธิ์เข้าถึง), 404 Not Found (ไม่มีทรัพยากรดังกล่าว)
  • 5xx ข้อผิดพลาดของเซิร์ฟเวอร์: 500 Internal Server Error (เกิดข้อผิดพลาดบางอย่างบนเซิร์ฟเวอร์)

การใช้รหัสสถานะที่เหมาะสมมีความสำคัญอย่างยิ่งต่อ API ที่ออกแบบมาเป็นอย่างดี

รูปแบบข้อมูล: JSON เพื่อความเรียบง่าย

เมื่อส่งข้อมูลไปยังหรือรับข้อมูลจาก API แบบ RESTful รูปแบบที่ใช้กันทั่วไปคือ JSON (สัญกรณ์ออบเจ็กต์ JavaScript)

JSON มีขนาดเล็ก อ่านโดยมนุษย์ได้ และภาษาโปรแกรมส่วนใหญ่สามารถแยกวิเคราะห์ได้ง่าย โดยแสดงข้อมูลเป็นคู่คีย์-ค่าและอาร์เรย์ จึงเหมาะอย่างยิ่งสำหรับข้อมูลที่มีโครงสร้าง

แม้ XML จะเคยได้รับความนิยม แต่ JSON กลายเป็นมาตรฐานโดยพฤตินัยสำหรับ API บนเว็บ เนื่องจากเรียบง่ายและมีประสิทธิภาพ

การกำหนดเวอร์ชัน API

เมื่อ AI SaaS ของคุณพัฒนา API ของคุณก็จะพัฒนาไปด้วย คุณอาจเพิ่มคุณลักษณะใหม่ เปลี่ยนโครงสร้างข้อมูล หรือลบจุดปลายทางเก่าออก นี่คือจุดที่การกำหนดเวอร์ชัน APIเข้ามามีบทบาท

การกำหนดเวอร์ชันช่วยให้คุณเปลี่ยนแปลงระบบได้โดยไม่ทำให้แอปพลิเคชันเดิมที่พึ่งพา API ของคุณหยุดทำงาน วิธีที่ใช้กันทั่วไปคือใส่หมายเลขเวอร์ชันไว้ใน URL:

  • /v1/users (สำหรับเวอร์ชัน 1)
  • /v2/users (สำหรับเวอร์ชัน 2)

วิธีนี้ช่วยให้เข้ากันได้กับเวอร์ชันก่อนหน้า และทำให้ผู้ใช้เปลี่ยนผ่านได้ราบรื่นยิ่งขึ้น

ตรวจสอบทักษะการออกแบบ API ของคุณ

ข้อใดต่อไปนี้เป็นหลักการสำคัญของการออกแบบ API แบบ RESTful

ทบทวน: การออกแบบ API ที่แข็งแกร่ง

ขอแสดงความยินดี! คุณได้เรียนรู้พื้นฐานการออกแบบ API แบบ RESTful แล้ว

  • API ช่วยให้ส่วนหน้าและส่วนหลังสื่อสารกันได้
  • REST เป็นรูปแบบสถาปัตยกรรมที่เน้นทรัพยากรและเมธอด HTTP มาตรฐาน
  • ควรระบุทรัพยากรด้วยคำนามรูปพหูพจน์ใน URL
  • เมธอด HTTP (GET, POST, PUT, DELETE) กำหนดการกระทำกับทรัพยากรเหล่านี้
  • รหัสสถานะ HTTP ให้ข้อมูลสำคัญเกี่ยวกับผลลัพธ์ของคำขอ
  • JSON เป็นรูปแบบข้อมูลที่แนะนำสำหรับการสื่อสารผ่าน API
  • การกำหนดเวอร์ชัน API ช่วยให้พัฒนาได้อย่างราบรื่นและยังเข้ากันได้กับเวอร์ชันก่อนหน้า

การเชี่ยวชาญแนวคิดเหล่านี้เป็นกุญแจสำคัญในการสร้างส่วนหลังของ AI SaaS ที่รองรับการขยายขนาดและดูแลรักษาได้ง่าย

คำถามที่พบบ่อย

บทเรียน “การออกแบบ RESTful API” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การออกแบบ RESTful API” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI SaaS Builder ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI SaaS Builder มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การออกแบบ RESTful API”

สร้าง API ที่มีโครงสร้างดีและมีประสิทธิภาพ เพื่อการสื่อสารที่ราบรื่นระหว่างส่วนหน้าและส่วนหลัง คุณปฏิบัติ AI SaaS Builder ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI SaaS Builder หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI SaaS Builder บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การออกแบบ RESTful API” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI SaaS Builder นี้ได้ไหม

ได้ บทเรียน AI SaaS Builder ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การออกแบบ RESTful API
  2. การจัดการฐานข้อมูลสำหรับ SaaS
  3. การยืนยันตัวตนและการกำหนดสิทธิ์ผู้ใช้
  4. การจำกัดอัตราและการจัดคิวคำขอปัญญาประดิษฐ์
← กลับไปที่ AI SaaS Builder