首先,确保你已经安装了FastAPI和uvicorn:
pip install fastapi uvicorn
然后,创建一个名为main.py的文件,输入以下代码:
from fastapi import FastAPI, Depends, HTTPException
app = FastAPI()
# 依赖项函数,用于获取用户认证信息
def get_current_user(token: str = Depends(lambda x: x.headers.get("Authorization"))):
if token != "fake-token":
raise HTTPException(status_code=401, detail="Unauthorized")
return {"username": "fakeuser"}
# 使用依赖项函数
@app.get("/users/me")
async def read_user_me(current_user: dict = Depends(get_current_user)):
return current_user
在这个例子中,我们定义了一个依赖项函数get_current_user,它用于获取用户认证信息。在get_current_user中,我们通过Depends装饰器将这个函数作为依赖项绑定到路由函数中。在路由函数/users/me中,我们传递current_user参数,该参数会自动从get_current_user依赖项中获取。
你可以使用[httpie](https://httpie.io/)或其他工具来测试这个API。以下是一个使用httpie的示例:
http "http://127.0.0.1:8000/users/me" "Authorization:fake-token"
在上面的命令中,我们向 /users/me 发送了一个GET请求,并在请求头中携带了一个认证令牌。FastAPI将自动执行依赖项函数,并在响应中返回相应的信息。
转载请注明出处:http://www.zyzy.cn/article/detail/7383/FastAPI