วิธีการใช้ FastAPI สร้างบริการ API ที่มีประสิทธิภาพสูง

2/20/2026
2 min read

วิธีการใช้ FastAPI สร้างบริการ API ที่มีประสิทธิภาพสูง

FastAPI เป็นเฟรมเวิร์กเว็บที่ทันสมัยและรวดเร็ว (มีประสิทธิภาพ) ที่ออกแบบมาเพื่อสร้าง API โดยเฉพาะ มันถูกสร้างขึ้นบนพื้นฐานของการระบุประเภทใน Python และรองรับการเขียนโปรแกรมแบบอะซิงโครนัส ซึ่งอนุญาตให้นักพัฒนาสร้างบริการ API ที่มีประสิทธิภาพสูงและมีความพร้อมใช้งานสูง โดยมีความหน่วงต่ำ บทความนี้จะอธิบายรายละเอียดเกี่ยวกับวิธีการใช้ FastAPI ในการสร้างบริการ API ที่มีประสิทธิภาพสูง เราจะแบ่งเป็นขั้นตอนเพื่อช่วยให้คุณสามารถทำตั้งแต่การตั้งค่าสภาพแวดล้อมไปจนถึงการปรับใช้

ขั้นตอนที่หนึ่ง: การเตรียมสภาพแวดล้อม

คุณต้องมั่นใจว่าคุณได้ติดตั้ง Python 3.6+ ในสภาพแวดล้อมการพัฒนาของคุณ หากยังไม่ได้ติดตั้ง สามารถไปที่ เว็บไซต์ Python เพื่อดาวน์โหลดและติดตั้ง

ติดตั้ง FastAPI และ Uvicorn

FastAPI เองไม่ได้ให้บริการ ต้องการเซิร์ฟเวอร์ ASGI เพื่อรองรับ ที่นี่เราจะใช้ Uvicorn ซึ่งเป็นเซิร์ฟเวอร์ ASGI ที่มีประสิทธิภาพสูง สามารถใช้คำสั่งต่อไปนี้เพื่อติดตั้ง FastAPI และ Uvicorn:

pip install fastapi uvicorn

ขั้นตอนที่สอง: สร้าง API พื้นฐาน

มาสร้างแอป FastAPI ที่ง่ายๆ กันเถอะ

สร้างไฟล์แอป

ในไดเรกทอรีโปรเจกต์ของคุณ สร้างไฟล์ Python เช่น main.py แล้วเขียนโค้ดดังนี้:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello, World!"}

ในโค้ดข้างต้น เราได้ทำการนำเข้า FastAPI และสร้างอินสแตนซ์ app ขึ้นมา จากนั้นเรากำหนดเส้นทาง GET ซึ่งเมื่อเข้าถึงเส้นทางราก / จะส่งคืนการตอบกลับ JSON ที่ง่าย

เริ่มเซิร์ฟเวอร์

เริ่มเซิร์ฟเวอร์ FastAPI ของคุณด้วยคำสั่งต่อไปนี้:

uvicorn main:app --reload
  • main: หมายถึงชื่อไฟล์ โดยไม่ต้องมีนามสกุล .py
  • app: หมายถึงอินสแตนซ์ FastAPI
  • --reload: ในโหมดพัฒนา เซิร์ฟเวอร์จะรีสตาร์ทโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงไฟล์

ขั้นตอนที่สาม: กำหนดเส้นทางและโมเดลข้อมูล

เพื่อสร้าง API ที่ซับซ้อน คุณต้องใช้ Pydantic ในการกำหนดโมเดลข้อมูล

สร้างโมเดลข้อมูล

ใน main.py เพิ่มเนื้อหาดังนี้:

from pydantic import BaseModel

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

โค้ดนี้ใช้ Pydantic สร้างโมเดลข้อมูล Item ซึ่งประกอบด้วยชื่อสินค้า ราคา และสถานะการมีอยู่

เพิ่มเส้นทางใหม่

ต่อไป เราสามารถกำหนดเส้นทาง POST ใหม่เพื่อรับข้อมูลประเภท Item:

@app.post("/items/")
async def create_item(item: Item):
    return {"item_name": item.name, "item_price": item.price}

ในเส้นทางนี้ FastAPI จะทำการตรวจสอบข้อมูลที่ส่งเข้ามาโดยอัตโนมัติและทำการแมพไปยังโมเดล Item

ขั้นตอนที่สี่: การสร้างเอกสารอัตโนมัติ

หนึ่งในข้อดีที่ใหญ่ที่สุดของ FastAPI คือสามารถสร้างเอกสาร API โดยอัตโนมัติ คุณสามารถดูได้โดยการเข้าถึงที่อยู่ต่อไปนี้:

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

ในเอกสารที่สร้างขึ้นเหล่านี้ คุณสามารถทดสอบ API แบบโต้ตอบได้ ดูรูปแบบคำขอและการตอบกลับของแต่ละเส้นทาง

ขั้นตอนที่ห้า: เพิ่มการตรวจสอบสิทธิ์

ในแอปพลิเคชันจริง การตรวจสอบสิทธิ์เป็นขั้นตอนที่สำคัญ มาลองเพิ่มการตรวจสอบสิทธิ์ที่ง่ายๆ โดยอิงจากบทบาทกันเถอะ

เพิ่มการพึ่งพาความปลอดภัย

ใช้วิธี Depends ของ FastAPI และ OAuth2PasswordBearer เพื่อทำการตรวจสอบสิทธิ์:

from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

async def fake_decode_token(token):
    return {"sub": token}

async def get_current_user(token: str = Depends(oauth2_scheme)):
    user = fake_decode_token(token)
    if user is None:
        raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid authentication credentials")
    return user

ปกป้องเส้นทาง

จากนั้น คุณสามารถเพิ่มการตรวจสอบสิทธิ์ไปยังเส้นทางที่ต้องการปกป้อง:

@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
    return current_user

ขั้นตอนที่หก: ปรับใช้แอป FastAPI

เมื่อคุณเสร็จสิ้นการพัฒนาแล้ว คุณอาจต้องการปรับใช้แอปไปยังเซิร์ฟเวอร์คลาวด์ สามารถเลือกใช้ Docker ในการปรับใช้

สร้าง Dockerfile

ในไดเรกทอรีโปรเจกต์ สร้างไฟล์ชื่อ Dockerfile และใส่เนื้อหาดังนี้:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

COPY ./app /app

สร้าง Docker image

ในเทอร์มินัลของคุณ ใช้คำสั่งต่อไปนี้เพื่อสร้าง Docker image:

docker build -t myfastapiapp .

รัน Docker container

รันแอป FastAPI ของคุณ:

docker run -d --name fastapi -p 80:80 myfastapiapp

สรุป

ในบทความนี้ เราได้อธิบายรายละเอียดเกี่ยวกับวิธีการใช้ FastAPI สร้างบริการ API ที่มีประสิทธิภาพสูง ตั้งแต่การเตรียมสภาพแวดล้อมไปจนถึงการสร้าง API พื้นฐาน การกำหนดเส้นทางและโมเดลข้อมูล รวมถึงการเพิ่มการตรวจสอบสิทธิ์และการปรับใช้ FastAPI มีฟังก์ชันที่ทรงพลังมากมาย ทำให้การสร้าง API สมัยใหม่เป็นเรื่องง่ายและมีประสิทธิภาพ คุณสามารถสำรวจฟังก์ชันและคุณสมบัติเพิ่มเติมได้จากเอกสารทางการ หวังว่าบทความนี้จะช่วยให้คุณเริ่มต้นกับ FastAPI ได้เร็วขึ้นและเพิ่มประสิทธิภาพในการพัฒนาโปรเจกต์ของคุณ!

Published in Technology

You Might Also Like

วิธีการใช้เทคโนโลยีคลาวด์คอมพิวติ้ง: คู่มือที่สมบูรณ์ในการสร้างโครงสร้างพื้นฐานคลาวด์แรกของคุณTechnology

วิธีการใช้เทคโนโลยีคลาวด์คอมพิวติ้ง: คู่มือที่สมบูรณ์ในการสร้างโครงสร้างพื้นฐานคลาวด์แรกของคุณ

[[HTMLPLACEHOLDER0]] [[HTMLPLACEHOLDER1]] [[HTMLPLACEHOLDER2]] [[HTMLPLACEHOLDER3]] [[HTMLPLACEHOLDER4]] [[HTMLPLACEHOLD...

เตือนภัย! ผู้ก่อตั้ง Claude Code กล่าวตรงๆ: อีก 1 เดือนถ้าไม่ใช้ Plan Mode ตำแหน่งวิศวกรซอฟต์แวร์จะหายไปTechnology

เตือนภัย! ผู้ก่อตั้ง Claude Code กล่าวตรงๆ: อีก 1 เดือนถ้าไม่ใช้ Plan Mode ตำแหน่งวิศวกรซอฟต์แวร์จะหายไป

เตือนภัย! ผู้ก่อตั้ง Claude Code กล่าวตรงๆ: อีก 1 เดือนถ้าไม่ใช้ Plan Mode ตำแหน่งวิศวกรซอฟต์แวร์จะหายไป เมื่อเร็วๆ นี้...

2026年 Top 10 深度学习资源推荐Technology

2026年 Top 10 深度学习资源推荐

2026年 Top 10 深度学习资源推荐 随着深度学习在各个领域的迅速发展,越来越多的学习资源和工具涌现出来。本文将为您推荐2026年最值得关注的十个深度学习资源,帮助您在这一领域中快速成长。 1. Coursera Deep Learn...

2026年 Top 10 AI 代理:核心卖点解析Technology

2026年 Top 10 AI 代理:核心卖点解析

2026年 Top 10 AI 代理:核心卖点解析 引言 随着人工智能的快速发展,AI 代理(AI Agents)已成为技术领域的热点话题。越来越多的开发者和企业开始探索如何利用这些智能代理提升工作效率和业务盈利。但在众多的 AI 代理解决...

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力Technology

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力 ในยุคที่เทคโนโลยีก้าวหน้าอย่างรวดเร็ว ปัญญาประดิษฐ์ (AI) ได้กลายเป็นหัวข้อที่ได้รับความ...

2026年 Top 10 AWS工具和资源推荐Technology

2026年 Top 10 AWS工具和资源推荐

2026年 Top 10 AWS工具和资源推荐 ในสาขาคลาวด์คอมพิวติ้งที่พัฒนาอย่างรวดเร็ว Amazon Web Services (AWS) ยังคงเป็นผู้นำ โดยมีบริการแ...