
เราสามารถสร้าง API ด้วย FastAPI ได้ด้วยภาษา Python โดยใช้ไวยากรณ์ type hints ของ Python 3.6 ขึ้นไป
โดย FastAPI มีคุณสมบัติน่าสนใจอย่างมากดังนี้
- เป็น MIT License
- รองรับการสร้าง API หลากหลายรูปแบบ แถมรองรับ OAuth2 ด้วย
- มีระบบสร้างเอกสาร API แบบอัตโนมัติ ที่สามารถทดลอง API ได้ผ่านหน้าเว็บเอกสาร
- API เข้ากันได้กับ OpenAPI และ JSON Schema
การติดตั้ง FastAPI
สามารถติดตั้ง FastAPI ได้ผ่านคำสั่งpip install fastapi
หากต้องการเปิด ASGI server (Asynchronous Server Gateway Interface) หากต้องใช้โมดูล Uvicorn หรือ Hypercorn เข้ามาช่วย
ในที่นี้เลือก Uvicorn ซึ่งเป็น ASGI server ในภาษา Python สามารถติดตั้งได้ผ่านคำสั่ง
pip install uvicorn
ทดลองสร้าง API ด้วย FastAPI บน Python
เรามาลองยกตัวอย่างจริง ๆ กันดีกว่า สมมติ เราต้องการสร้าง API สำหรับตัดคำภาษาไทย ซึ่งปัจจุบันมีโมดูลอย่าง PyThaiNLP ใน Python แต่ยังไม่มีใครทำเป็น API เราสามารถสร้าง API ตัดคำภาษาไทยได้ด้วยตนเอง โดยใช้ FastAPI เพื่อปรับใช้ภายในองค์กรหรือความต้องการของตนเองได้ดังตัวอย่างนี้สร้างไฟล์ main.py ขึ้นมา เพื่อใช้รันกับ Uvicorn
from fastapi import FastAPI
from pythainlp.tokenize import word_tokenize # ติดตั้งด้วยคำสั่ง pip install pythainlp
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/word_tokenize/{text}")
def read_word(text: str):
return {"word": word_tokenize(text)}
บันทึกไฟล์ แล้วเปิด cmd หรือเทอร์มินัล รันด้วยคำสั่ง
uvicorn main:app --reloadลองเข้าไปที่ http://127.0.0.1:8000/ จะพบกับ
{"Hello": "World"}
ลองยิงคำสั่ง API ตัดคำที่เราสร้างขึ้นมา โดยยิง
http://127.0.0.1:8000/word_tokenize/ทดสอบตัดคำภาษาไทยด้วย FastAPI ใน Pythonผลลัพธ์
{"word":["ทดสอบ","ตัด","คำ","ภาษาไทย","ด้วย"," ","FastAPI"," ","ใน"," ","Python"]}
จะเห็นได้ว่า API ตัดคำภาษาไทยที่สร้าง API ด้วย FastAPI บน Python สามารถใช้งานได้จริงในเวลาอันสั้นมาก
ต่อมา เรามาลองระบบสร้างเอกสาร API แบบอัตโนมัติของ FastAPI กัน โดยเข้าไปที่
http://127.0.0.1:8000/docsจะพบกับหน้าเอกสารทาง FastAPI สร้างให้
![]() |
หน้าเอกสารทาง FastAPI จาก API ที่สร้างด้วย Python |
พอคลิกที่
GET /word_tokenize/{text} Read Item
จะแสดงรายละเอียด API ให้เรา![]() |
รายละเอียด API ในหน้าเอกสารทาง FastAPI จาก API ที่สร้างด้วย Python |
ลองเล่น API โดยกด
Try it out
โดยลองพิมพ์ข้อความที่ต้องการตัดคำ แล้วกด Execute
![]() |
ทดลองเล่น API ในหน้าเอกสารทาง FastAPI จาก API ที่สร้างด้วย Python |
ผลลัพธ์
![]() |
ผลลัพธ์การทดลองเล่น API ในหน้าเอกสารทาง FastAPI จาก API ที่สร้างด้วย Python |
เข้าไปอ่านเอกสาร FastAPI เพื่อให้เข้าใจการสร้าง API ด้วย Python กับ FastAPI มากขึ้นได้ที่ https://fastapi.tiangolo.com/
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)