Jupyter AI

11 FastAPI路由与请求处理之HTTP方法的使用

📅 发表日期: 2024年8月18日

分类: 🚀Python FastAPI 入门

👁️阅读: --

在上一篇中,我们探讨了如何在FastAPI中定义路由。在这篇文章中,我们将深入了解各种HTTP方法在FastAPI路由中的实现,以及如何处理与之相关的请求。

HTTP方法概述

HTTP协议定义了一组请求方法(或称为HTTP动词),它们用于客户端与服务器之间的交互。在FastAPI中,常用的HTTP方法包括:

  • GET: 获取资源
  • POST: 创建资源
  • PUT: 更新资源
  • DELETE: 删除资源

在FastAPI中,我们将使用对应的装饰器来定义路由。

使用HTTP方法定义路由

1. 使用GET方法

GET方法用于请求指定的资源,并且应当是幂等的。使用GET方法时,我们通常会处理参数的查询。

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/")
async def read_items(skip: int = 0, limit: int = 10):
    return {"skip": skip, "limit": limit}

在这个示例中,我们定义了一个GET请求的路由/items/,可以通过查询参数skiplimit来控制返回的内容。

2. 使用POST方法

POST方法用于向服务器提交数据,通常用于创建资源。

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float

@app.post("/items/")
async def create_item(item: Item):
    return item

在这个例子中,我们定义了一个POST请求的路由/items/。我们使用Pydantic模型Item来校验请求体中的数据并生成一个新项。

3. 使用PUT方法

PUT方法用于更新已有资源。通常在这里会使用资源的唯一标识符来更新数据。

@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):
    return {"item_id": item_id, **item.dict()}

该代码段定义了一个PUT请求的路由/items/{item_id},允许我们通过传递item_id来更新特定的项。

4. 使用DELETE方法

DELETE方法用于删除资源。

@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
    return {"message": f"Item with id {item_id} has been deleted"}

在这个示例中,我们使用DELETE请求的路由/items/{item_id},来删除特定ID的项。

总结

在这篇文章中,我们探讨了如何在FastAPI中使用不同的HTTP方法来定义路由,分别是GETPOSTPUTDELETE。通过这些示例,您应该能够看出,每种方法在API中的使用场景是非常清晰且明确的。

在下一篇中,我们将重点讨论如何在FastAPI中使用路径参数来处理更复杂的请求,以提高API的灵活性和功能性。因此,如果您还不熟悉路径参数的概念,建议您继续关注下篇内容。

🚀Python FastAPI 入门 (滚动鼠标查看)