1 fastAPI请求方式

FastAPI 支持多种 HTTP 请求方式(也称为 HTTP 动作或方法),这些方法通常对应 RESTful API 中的基本操作:创建、获取、更新和删除(即 CRUD 操作)。下面我将介绍 FastAPI 如何处理这些请求方式。

常见的 HTTP 请求方式

1. GET 请求

GET 请求用于获取资源。当你想从服务器获取数据时,应该使用 GET 方法。

在 FastAPI 中,使用 @app.get() 装饰器定义 GET 请求的路由。

示例:
@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}
访问:
  • 请求路径:GET /items/42
  • 返回:{"item_id": 42}

2. POST 请求

POST 请求用于创建新的资源。当你需要提交数据到服务器时,应该使用 POST 方法。

在 FastAPI 中,使用 @app.post() 装饰器定义 POST 请求的路由。

示例:
from pydantic import BaseModel

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

@app.post("/items/")
def create_item(item: Item):
    return {"name": item.name, "price": item.price}
访问:
  • 请求路径:POST /items/
  • 请求体(JSON 格式):
{
  "name": "Laptop",
  "price": 1200.50
}
  • 返回:{"name": "Laptop", "price": 1200.5}

3. PUT 请求

PUT 请求用于更新已存在的资源。当你需要更新一个资源时,使用 PUT 请求。

在 FastAPI 中,使用 @app.put() 装饰器定义 PUT 请求的路由。

示例:
@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_id": item_id, "name": item.name, "price": item.price}
访问:
  • 请求路径:PUT /items/42
  • 请求体(JSON 格式):
{
  "name": "Updated Laptop",
  "price": 1300.00
}
  • 返回:{"item_id": 42, "name": "Updated Laptop", "price": 1300.0}

4. DELETE 请求

DELETE 请求用于删除资源。当你需要删除一个资源时,使用 DELETE 请求。

在 FastAPI 中,使用 @app.delete() 装饰器定义 DELETE 请求的路由。

示例:
@app.delete("/items/{item_id}")
def delete_item(item_id: int):
    return {"message": f"Item {item_id} deleted"}
访问:
  • 请求路径:DELETE /items/42
  • 返回:{"message": "Item 42 deleted"}

5. PATCH 请求

PATCH 请求用于部分更新资源。当你需要对资源进行部分更新时,应该使用 PATCH 请求。

在 FastAPI 中,使用 @app.patch() 装饰器定义 PATCH 请求的路由。

示例:
@app.patch("/items/{item_id}")
def patch_item(item_id: int, item: Item):
    return {"item_id": item_id, "name": item.name, "price": item.price}
访问:
  • 请求路径:PATCH /items/42
  • 请求体(JSON 格式):
{
  "price": 1100.00
}
  • 返回:{"item_id": 42, "name": "Laptop", "price": 1100.0}

使用路径参数和查询参数

FastAPI 支持在请求中同时使用路径参数和查询参数。

路径参数

路径参数用于获取 URL 中的动态部分。例如,在 /items/{item_id} 中,item_id 是路径参数。

查询参数

查询参数则出现在 URL 中的 ?key=value 部分。例如,在 /items/?skip=10&limit=20 中,skiplimit 是查询参数。

示例:GET 请求带路径和查询参数
@app.get("/items/{item_id}")
def read_item(item_id: int, skip: int = 0, limit: int = 10):
    return {"item_id": item_id, "skip": skip, "limit": limit}
访问:
  • 请求路径:GET /items/42?skip=10&limit=5
  • 返回:{"item_id": 42, "skip": 10, "limit": 5}

FastAPI 提供了完整的 HTTP 请求方式支持,包括 GETPOSTPUTDELETEPATCH 等。这些请求方式可以通过对应的装饰器(如 @app.get()@app.post())来定义。同时,FastAPI 支持路径参数和查询参数,并且能够通过 Pydantic 数据模型进行数据验证,使得 API 更加类型安全和易于使用。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值