0Pricing
Python Academy · บทเรียน

การตั้งค่าโปรเจกต์ FastAPI และเอนด์พอยต์แรก

ติดตั้ง FastAPI สร้างโปรเจกต์ และเขียนเอนด์พอยต์ GET แรกของคุณ

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

FastAPI คืออะไร

FastAPI คือเว็บเฟรมเวิร์กสมัยใหม่ของ Python สำหรับสร้าง REST APIs โดยมีเอกสาร OpenAPI อัตโนมัติ โมเดลคำขอ/การตอบกลับที่ตรวจสอบชนิดข้อมูลผ่าน Pydantic และประสิทธิภาพแบบอะซิงก์โดยกำเนิด

# pip install fastapi uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello, FastAPI"}

การเรียกใช้เซิร์ฟเวอร์

เรียกใช้ด้วย uvicorn แฟล็ก --reload จะเริ่มต้นใหม่โดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงโค้ดระหว่างการพัฒนา

# main.py
from fastapi import FastAPI
app = FastAPI()

@app.get("/health")
def health(): return {"status": "ok"}

# Terminal:
# uvicorn main:app --reload
# → http://127.0.0.1:8000
# → http://127.0.0.1:8000/docs  (Swagger UI)

เมธอด HTTP

ตกแต่งฟังก์ชันเส้นทางด้วย @app.get, @app.post, @app.put, @app.delete หรือ @app.patch

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(): return []

@app.post("/items")
def create_item(): return {"id": 1}

@app.delete("/items/{item_id}")
def delete_item(item_id: int): return {"deleted": item_id}

พารามิเตอร์เส้นทาง

ประกาศพารามิเตอร์เส้นทางในสตริงเส้นทางด้วย {name} และประกาศเป็นอาร์กิวเมนต์ของฟังก์ชันพร้อมคำอธิบายชนิดข้อมูล

from fastapi import FastAPI
app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id, "name": "Alice"}

# GET /users/42  → {"user_id": 42, "name": "Alice"}

พารามิเตอร์คำค้น

พารามิเตอร์ของฟังก์ชันที่ไม่อยู่ในเส้นทางจะกลายเป็นพารามิเตอร์คำค้น

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(skip: int = 0, limit: int = 10, q: str | None = None):
    return {"skip": skip, "limit": limit, "q": q}

# GET /items?skip=5&limit=20&q=search

เนื้อหาคำขอ Pydantic

ใช้ BaseModel ของ Pydantic เป็นชนิดของพารามิเตอร์เพื่อประกาศและตรวจสอบเนื้อหาคำขอ JSON

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float
    in_stock: bool = True

@app.post("/items")
def create_item(item: Item):
    return {"received": item.model_dump()}

ข้อผิดพลาดการตรวจสอบ Pydantic

หากเนื้อหาคำขอไม่ตรงกับสคีมา FastAPI จะส่งคืนข้อผิดพลาด 422 Unprocessable Entity พร้อมข้อความข้อผิดพลาดโดยละเอียดโดยอัตโนมัติ

# POST /items with body {"name": 123}
# → HTTP 422 Unprocessable Entity
# {
#   "detail": [
#     {
#       "type": "string_type",
#       "loc": ["body","name"],
#       "msg": "Input should be a valid string"
#     }
#   ]
# }

โมเดลการตอบกลับ

ใช้ response_model= เพื่อประกาศว่าจุดปลายทางจะส่งคืนอะไร FastAPI จะตรวจสอบการตอบกลับและกรองฟิลด์ส่วนเกินออก

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class UserOut(BaseModel):
    id: int
    name: str

@app.get("/users/{uid}", response_model=UserOut)
def get_user(uid: int):
    return {"id": uid, "name": "Alice", "password": "secret"}  # password filtered out

รหัสสถานะ

กำหนดรหัสสถานะความสำเร็จเริ่มต้นด้วย status_code= นำเข้ารหัสทั่วไปจาก fastapi.status

from fastapi import FastAPI, status
app = FastAPI()

@app.post("/items", status_code=status.HTTP_201_CREATED)
def create_item():
    return {"id": 1}

# HTTP 201 Created is returned on success

HTTPException

ยก HTTPException เพื่อส่งคืนการตอบกลับข้อผิดพลาดพร้อมรหัสสถานะและข้อความรายละเอียดที่กำหนดเอง

from fastapi import FastAPI, HTTPException
app = FastAPI()

fake_db = {1: "Alice"}

@app.get("/users/{uid}")
def get_user(uid: int):
    if uid not in fake_db:
        raise HTTPException(status_code=404, detail="User not found")
    return {"name": fake_db[uid]}

เอกสารอัตโนมัติ

FastAPI สร้าง Swagger UI ที่ /docs และ ReDoc ที่ /redoc โดยอัตโนมัติจากคำอธิบายเส้นทางของคุณ

# After starting with uvicorn:
# http://localhost:8000/docs     — Swagger UI (try the API live)
# http://localhost:8000/redoc    — ReDoc (clean docs view)
# http://localhost:8000/openapi.json  — raw OpenAPI schema

ตรวจสอบด่วน

คุณประกาศพารามิเตอร์เนื้อหาคำขอ JSON ที่จำเป็นใน FastAPI อย่างไร

ทบทวน

เส้นทางของ FastAPI คือฟังก์ชันที่ตกแต่งไว้ โดยพารามิเตอร์เส้นทางอยู่ใน URL พารามิเตอร์คำค้นเป็นอาร์กิวเมนต์ที่ระบุชนิดข้อมูล และเนื้อหาคำขอเป็นโมเดล Pydantic ยก HTTPException สำหรับข้อผิดพลาด Swagger UI จะถูกสร้างขึ้นโดยอัตโนมัติที่ /docs

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

บทเรียน “การตั้งค่าโปรเจกต์ FastAPI และเอนด์พอยต์แรก” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การตั้งค่าโปรเจกต์ FastAPI และเอนด์พอยต์แรก”

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

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

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

บทเรียน “การตั้งค่าโปรเจกต์ FastAPI และเอนด์พอยต์แรก” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การตั้งค่าโปรเจกต์ FastAPI และเอนด์พอยต์แรก
  2. พารามิเตอร์เส้นทาง พารามิเตอร์คำค้น และบอดีคำขอ
  3. การแทรกการพึ่งพาและการยืนยันตัวตน
  4. เอนด์พอยต์อะซิงก์และการเชื่อมต่อฐานข้อมูล
← กลับไปที่ Python Academy