快速入门 FastAPI:构建高性能 API

在当今的软件开发世界中,构建高性能的 API 是至关重要的。幸运的是,FastAPI 提供了一个现代且易于使用的框架,帮助开发者快速构建这些 API。今天,我们将一起探索 FastAPI 的基本用法,从安装到构建第一个 API。

1. FastAPI 简介

FastAPI 是一个现代的、快速的(高性能的)Web 框架,用于构建 API。它基于标准 Python 类型提示,支持 Python 3.6 及以上版本。FastAPI 旨在提供快速开发体验,并自动处理许多常见的任务,如数据验证和序列化。

2. 安装 FastAPI

首先,你需要安装 FastAPI。打开你的终端或命令提示符,并运行以下命令:

pip install fastapi

你还需要安装一个 ASGI 服务器,如 uvicorn,来运行你的 FastAPI 应用:

pip install uvicorn

3. 创建第一个 FastAPI 应用

让我们创建一个简单的 FastAPI 应用。首先,创建一个新的 Python 文件,例如 main.py,并写入以下代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"Hello": "World"}

这是一个非常基础的 FastAPI 应用,它定义了一个根路由 /,当访问这个路由时,会返回一个包含 “Hello World” 的 JSON 对象。

4. 运行你的 FastAPI 应用

现在,你可以运行你的 FastAPI 应用了。在终端中,运行以下命令:

uvicorn main:app --reload

这将启动一个开发服务器,地址通常是 http://127.0.0.1:8000。你可以在浏览器中访问这个地址,看到返回的 JSON 对象。

5. 路径操作和参数

FastAPI 允许你定义路径操作,这些操作可以接收不同类型的参数。

路径参数
@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
查询参数
@app.get("/items/")
async def read_items(q: str = None):
    return {"q": q}

6. 数据验证和序列化

FastAPI 自动处理数据验证和序列化。你可以使用 Python 类型提示来定义请求和响应的数据格式。

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
async def create_item(item: Item):
    if item.tax is None:
        item.tax = 10.5  # 假设默认税率为 10.5%
    return item

7. 依赖注入

FastAPI 支持依赖注入,这使得你可以轻松地管理请求的依赖关系。

from fastapi import FastAPI, Depends

app = FastAPI()

async def get_db():
    return "Database connection"

@app.get("/db/")
async def read_db(db: str = Depends(get_db)):
    return {"db": db}

8. Swagger UI 和自动文档

FastAPI 自动为你的 API 提供了 Swagger UI 和自动文档。你可以通过访问 /docs 来查看这些文档。

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"Hello": "World"}

当你运行你的应用并访问 http://127.0.0.1:8000/docs 时,你将看到一个交互式的文档页面,展示你的 API 路径和参数。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值