วันนี้มีโอกาสได้แบ่งปันความรู้สำหรับการสร้าง API ด้วยภาษา Python
โดยสิ่งที่ต้องการคือ
- พัฒนาได้ง่าย
- ยิ่งถ้าสร้างจาก specification บางอย่างด้วยน่าจะดี
- ขนาดไม่ใหญ่
- ไม่ซับซ้อน
ดังนั้นจึงเลือก
Flask ซึ่งเป็น microframework สำหรับการพัฒนาระบบ web
รวมทั้งใช้
Connexion เพื่อช่วยทำการสร้าง API แบบอัตโนมัติ
จากการกำหนดค่าต่าง ๆ ในรูปแบบ
OpenAPI หรือ Swagger Specification นั่นเอง
ซึ่งน่าจะเป็นทางเลือกที่น่าสนใจ
มาลองใช้งานกัน
ขั้นตอนที่ 1 สร้างไฟล์ requirements.txt เพื่อกำหนด library ที่ใช้
[code]
Flask
connexion
[/code]
ขั้นตอนที่ 2 สร้างไฟล์สำหรับเขียน specification ของ API ที่ต้องการ
จากตัวอย่างต้องการ API มี endpoint คือ /v1/product
สำหรับดึงข้อมูลสินค้าทั้งหมดจากระบบ
โดยที่ api จะส่งข้อมูล list ของ product กลับมา
Product แต่ละชิ้นประกอบไปด้วย id, name และ price
ดังนั้นสามารถเขียนได้ดังนี้
[gist id="82038d4af0be1eb2aa74d1db0efff132" file="sample.yaml"]
จะสังเกตได้ว่า
จะมี property ชื่อว่า operationId
ใช้สำหรับกำหนดชื่อ method เริ่มต้นการทำงานของ API ชื่อว่า /product
ขั้นตอนที่ 3 สร้างส่วน operation สำหรับ API สิ
[gist id="82038d4af0be1eb2aa74d1db0efff132" file="api.py"]
ขั้นตอนที่ 4 สร้างส่วนการทำงานหลักด้วย Flask และ Connexion
[gist id="82038d4af0be1eb2aa74d1db0efff132" file="app.py"]
ขั้นตอนที่ 5 ทำการ run สิ
ได้ผลการทำงานดังนี้
หน้า API /v1/product
หน้าของ API Specification ในรูปแบบของ Swagger
เพียงเท่านี้เราก็ได้ API แบบง่าย ๆ จากการเขียน Specification กันแล้ว
ที่สำคัญได้โครงสร้าง code ของระบบงานอีกด้วย
ขอให้สนุกกับการเขียน code ครับ