lumi
1.0.0
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已生成
run
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 |