[英]How to access request_id defined in fastapi middleware in function
[英]How to access request object in router function using FastAPI?
我是 FastAPI 框架的新手,我想打印出響應。 例如,在 Django 中:
@api_view(['POST'])
def install_grandservice(req):
print(req.body)
在 FastAPI 中:
@app.post('/install/grandservice')
async def login():
//print out req
我試着喜歡這個
@app.post('/install/grandservice')
async def login(req):
print(req.body)
但我收到此錯誤: 127.0.0.1:52192 - "POST /install/login HTTP/1.1" 422 Unprocessable Entity
請幫我:(
您可以在路由器 function 中定義一個Request
類型的參數,如
from fastapi import FastAPI, Request
app = FastAPI()
@app.post('/install/grandservice')
async def login(request: Request):
print(request)
return {"foo": "bar"}
這也包含在文檔中,在直接使用請求 object部分下
這是一個打印fastAPI Request
內容的示例。 它將請求的主體打印為 json(如果它是 json 可解析的),否則打印原始字節數組。
async def print_request(request):
print(f'request header : {dict(request.headers.items())}' )
print(f'request query params : {dict(request.query_params.items())}')
try :
print(f'request json : {await request.json()}')
except Exception as err:
# could not parse json
print(f'request body : {await request.body()}')
@app.post("/printREQUEST")
async def create_file(request: Request):
try:
await print_request(request)
return {"status": "OK"}
except Exception as err:
logging.error(f'could not print REQUEST: {err}')
return {"status": "ERR"}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.