Lumi เป็นกรอบนาโนในการแปลงฟังก์ชั่น Python ของคุณให้เป็น REST API โดยไม่ต้องปวดหัวเป็นพิเศษ
pip install lumiมาสร้างฟังก์ชั่นง่ายๆเพื่อเพิ่มสองตัวเลข
def add ( a , b ):
return a + b
def subtract ( a , b ):
return a - bตอนนี้เราต้องการเปิดเผยฟังก์ชั่นนี้เป็น REST API เราสามารถทำได้โดยการลงทะเบียนฟังก์ชั่นด้วย LUMI
# app.py
from lumi import Lumi
app = Lumi ()
app . register ( add ) # Registering the function
app . register ( subtract )
app . runServer ( host = "127.0.0.1" , port = 8080 )Noice ?? API ได้รับการสร้างขึ้น
เรียกใช้ Sever โดย
python app.py
คุณจะเห็นสิ่งนี้ในอาคารของคุณ
[2022-11-24 17:32:08 +0530] [10490] [INFO] Starting gunicorn 20.1.0
[2022-11-24 17:32:08 +0530] [10490] [INFO] Listening at: http://127.0.0.1:8080 (10490)
[2022-11-24 17:32:08 +0530] [10490] [INFO] Using worker: sync
[2022-11-24 17:32:08 +0530] [10492] [INFO] Booting worker with pid: 10492
...
...
[2022-11-24 17:32:08 +0530] [10500] [INFO] Booting worker with pid: 10500
ยินดีด้วย ?. เซิร์ฟเวอร์ของเราออนไลน์
รหัสข้างต้นจะสร้าง REST API พร้อมรายละเอียดต่อไปนี้
127.0.0.1:8080/addPOST{"a": 1, "b": 2}มาเรียกใช้ API กันเถอะ
curl -X POST -H "Content-Type: application/json" -d '{"a": 1, "b": 2}' http://127.0.0.1:8080/add
เอาท์พุท
{
"exit_code" : 0 ,
"status_code" : 200 ,
"result" : 3 ,
"error" : " "
}ตอนนี้คุณอาจคิดว่าชื่อฟังก์ชั่นจะเหมือนกับเส้นทางเสมอ แต่คุณสามารถเปลี่ยนเส้นทางได้โดยผ่านพารามิเตอร์เส้นทาง
app . register ( add , route = "/addition" ) โดยค่าเริ่มต้นวิธีการร้องขอคือ POST แต่คุณสามารถเปลี่ยนได้โดยผ่านพารามิเตอร์วิธีการ ปัจจุบันรองรับวิธี GET POST PUT และ PATCH
from lumi import Lumi , RequestMethod
app = Lumi ()
def add ( a , b ):
return a + b
# Default : Register function for POST method
app . register ( add )
# Register function for GET method
app . register ( add , request_method = RequestMethod . GET )
# Register function for POST method
app . register ( add , request_method = RequestMethod . POST )
# Register function for PUT method
app . register ( add , request_method = RequestMethod . PUT )
# Register function for PATCH method
app . register ( add , request_method = RequestMethod . PATCH )
app . runServer () - ให้ความสนใจก่อนใช้คำขอรับ: หากคุณใช้วิธี GET
GET การสนับสนุนส่งไฟล์ไปยังผู้ใช้โดยส่งคืนวัตถุไฟล์
from lumi import Lumi , RequestMethod
app = Lumi ()
def download_file ():
return open ( "file.txt" , "rb" ) # Return file object
app . register ( download_file ) โดยค่าเริ่มต้นโหมดการดีบักเป็น True แต่คุณสามารถเปลี่ยนได้โดยผ่านพารามิเตอร์การดีบัก
# app.py
from lumi import Lumi
app = Lumi ( debug = False )
...| รหัสสถานะ | คำอธิบาย |
|---|---|
| 200 | ขอดำเนินการสำเร็จและไม่มีข้อผิดพลาดเกิดขึ้นระหว่างการดำเนินการฟังก์ชั่น |
| 500 | ได้รับคำขอ แต่มีข้อผิดพลาดระหว่างการดำเนินการฟังก์ชั่น |
| 400 | คำขอที่ไม่ดี (เหตุผลที่เป็นไปได้ - พารามิเตอร์ที่ต้องการสำหรับฟังก์ชั่นไม่ได้ให้ไว้) |
| 405 | ไม่อนุญาตให้ใช้วิธี (LUMI เท่านั้นรองรับคำขอ โพสต์ ) |
| 404 | เส้นทางไม่มีฟังก์ชั่นที่เกี่ยวข้องกับสิ่งนั้น |
| รหัสออก | คำอธิบาย |
|---|---|
| 0 | ไม่มีข้อผิดพลาด |
| 1 | ข้อผิดพลาด |
หมายเหตุ: หากฟังก์ชั่นมีข้อผิดพลาดคุณสามารถคาดหวังว่ารหัสออกเป็น 1 และข้อความแสดงข้อผิดพลาดในการตอบกลับ
ยินดีต้อนรับการมีส่วนร่วมเสมอ!
Tanmoy Sarkar | Amir M. Ghanem | Matheus Felipe | 0xflotus |