在 FastAPI 中,@app.post()
、@app.put()
和 @app.delete()
是三种不同的 HTTP 请求方法装饰器,用于定义 API 路由的处理函数,它们分别对应 POST、PUT 和 DELETE 请求,具有以下区别:
-
@app.post()
装饰器:- 用于定义处理 POST 请求的 API 路由。
- 通常用于在服务器上创建新资源或执行对资源的修改操作。
- POST 请求通常用于向服务器提交数据,比如创建新的数据库记录或提交表单数据。
-
@app.put()
装饰器:- 用于定义处理 PUT 请求的 API 路由。
- 通常用于更新或替换服务器上的资源。
- PUT 请求通常是幂等的,即多次相同的 PUT 请求不会对资源产生不同的影响。
-
@app.delete()
装饰器:- 用于定义处理 DELETE 请求的 API 路由。
- 通常用于从服务器上删除资源。
- DELETE 请求通常会删除服务器上的特定资源。
这些装饰器允许您将不同的 HTTP 请求方法映射到相应的处理函数上,以便在 FastAPI 应用中定义不同的路由。例如,以下是一个使用这些装饰器的示例:
from fastapi import FastAPI
app = FastAPI()
# 处理 POST 请求,用于创建新资源
@app.post("/items/")
def create_item(item: Item):
# 创建新资源的逻辑
return {"item": item}
# 处理 PUT 请求,用于更新资源
@app.put("/items/{item_id}")
def update_item(item_id: int, updated_item: UpdatedItem):
# 更新资源的逻辑
return {"item_id": item_id, "updated_item": updated_item}
# 处理 DELETE 请求,用于删除资源
@app.delete("/items/{item_id}")
def delete_item(item_id: int):
# 删除资源的逻辑
return {"message": f"Item {item_id} has been deleted"}
在上面的示例中,@app.post()
装饰器定义了一个处理 POST 请求的路由,@app.put()
装饰器定义了一个处理 PUT 请求的路由,@app.delete()
装饰器定义了一个处理 DELETE 请求的路由。根据不同的 HTTP 请求方法,这些路由会执行相应的逻辑来处理客户端的请求。