lumi
1.0.0
Lumiは、Python関数を余分な頭痛のせずにREST APIに変換するナノフレームワークです。
pip install lumi2つの数字を追加する単純な関数を作成しましょう。
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 )ノイス?? 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 Requestを使用する前に注意してください: GET Methodを使用している場合
GET dont dont support requestボディとして、クエリ文字列のパラメーターを渡す必要があります。ファイルオブジェクトを返してユーザーにファイルを送信します。
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になり、応答中のエラーメッセージが期待できます。
貢献はいつでも大歓迎です!
タンモイ・サルカー | アミール・M・ガネム | Matheus Felipe | 0xflotus |