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

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

HTTP方法概述

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

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

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

使用HTTP方法定义路由

1. 使用GET方法

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

1
2
3
4
5
6
7
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方法用于向服务器提交数据,通常用于创建资源。

1
2
3
4
5
6
7
8
9
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方法用于更新已有资源。通常在这里会使用资源的唯一标识符来更新数据。

1
2
3
@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方法用于删除资源。

1
2
3
@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的灵活性和功能性。因此,如果您还不熟悉路径参数的概念,建议您继续关注下篇内容。

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

https://zglg.work/python-fastapi-zero/11/

作者

IT教程网(郭震)

发布于

2024-08-17

更新于

2024-08-18

许可协议

分享转发

复习上节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论