lumi
1.0.0
Lumi는 여분의 두통없이 파이썬 기능을 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가 생성되었습니다
심하게 실행하십시오
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 메소드를 사용하는 경우
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이고 응답의 오류 메시지가 예상 될 수 있습니다.
기부금은 항상 환영합니다!
탄 메이 사르 카르 | Amir M. Ghanem | Matheus Felipe | 0xflotus |