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 |