FastAPI入门介绍

47 阅读3分钟

FastAPI入门介绍

FastAPI是一个现代、快速(高性能)、基于Python 3.6+的Web框架,用于构建API。它的主要特点是速度快、易于使用、易于学习、高效编码、生产就绪。让我们深入了解FastAPI的关键特性和基本用法。

  1. 为什么选择FastAPI?
  • 快速:FastAPI的性能堪比NodeJS和Go,是最快的Python Web框架之一。
  • 快速编码:它能够将开发速度提高约200%到300%。
  • 更少的错误:减少约40%的人为(开发人员)导致的错误。
  • 直观:强大的编辑器支持。处处都有自动补全,减少调试时间。
  • 简单:设计易于使用和学习,减少阅读文档的时间。
  • 简短:减少代码重复。每个参数声明的多个功能。更少的错误。
  • 健壮:获得可用于生产环境的代码。具有自动交互式文档。
  • 基于标准:基于(并完全兼容)API的开放标准:OpenAPI(以前称为Swagger)和JSON Schema。
  1. 安装

使用pip安装FastAPI非常简单:

pip install fastapi

你还需要一个ASGI服务器,用于生产环境:

pip install uvicorn
  1. 第一个FastAPI应用

让我们创建一个简单的FastAPI应用:

from fastapi import FastAPI

app = FastAPI()

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

运行服务器:

uvicorn main:app --reload

现在,打开浏览器访问http://127.0.0.1:8000。你将看到JSON响应:

{"message": "Hello World"}
  1. 路径参数

你可以声明路径参数并使用它们:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  1. 查询参数

当你声明了不属于路径参数的其他函数参数时,它们会被自动解释为"查询"参数:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/")
async def read_item(skip: int = 0, limit: int = 10):
    return {"skip": skip, "limit": limit}
  1. 请求体

要声明一个请求体,你可以使用Pydantic模型:

from fastapi import FastAPI
from pydantic import BaseModel

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

app = FastAPI()

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

FastAPI使用Pydantic模型提供了强大的数据验证功能:

from fastapi import FastAPI
from pydantic import BaseModel, Field

class Item(BaseModel):
    name: str
    price: float = Field(..., gt=0, description="The price must be greater than zero")

app = FastAPI()

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

FastAPI自动为你的API生成交互式API文档(使用Swagger UI):

你还可以获得替代的API文档(使用ReDoc):

结论

FastAPI是一个强大而简单的框架,适用于构建高性能的API。它结合了现代Python特性,提供了出色的开发体验和运行时性能。通过自动生成的交互式文档、内置的数据验证、序列化和异步支持,FastAPI使得构建和维护API变得前所未有的简单。无论你是构建小型项目还是大型应用,FastAPI都是一个值得考虑的选择。

这以上内容介绍了FastAPI的基本概念和使用方法,包括安装、创建应用、路径参数、查询参数、请求体、数据验证以及自动生成的API文档。通过这些基础知识,你应该能够开始使用FastAPI构建你的第一个API了。随着你深入学习,你会发现FastAPI还有更多高级特性等待探索。