FastApi快速实践
文章目录
- 一、主要功能:
- 二、安装 FastAPI 和 Uvicorn(运行服务器)
- 三、示例代码:
- 四、运行服务器:
- 1. 方式一:
- 2. 方式二:
- 五、访问接口
- 六、如果需要跨域(CORS)
- 七、总结
下面是一个使用 FastAPI 构建简单 API 的示例,包括 GET 和 POST 方法:
一、主要功能:
GET /
:返回欢迎信息POST /items/
:接收 JSON 数据,返回相应的响应
二、安装 FastAPI 和 Uvicorn(运行服务器)
pip install fastapi uvicorn
三、示例代码:
from fastapi import FastAPI
from pydantic import BaseModelapp = FastAPI()# 定义请求数据模型
class Item(BaseModel):name: strprice: floatdescription: str = None# GET 方法
@app.get("/")
def read_root():return {"message": "Welcome to FastAPI!"}# POST 方法,创建 item
@app.post("/items/")
def create_item(item: Item):return {"message": "Item received!", "item": item}# 运行服务器:
# 在终端运行: uvicorn filename:app --reload
四、运行服务器:
1. 方式一:
假设你的文件名为main.py
,可以使用以下命令启动开发服务器:
uvicorn main:app --reload
参数说明:
-
main:app
指的是文件名(main.py
)中的app
实例 -
--reload
支持热重载,便于开发调试
2. 方式二:
假设你的文件名为main.py
,在main.py
中增加:
if __name__ == "__main__":# 运行 FastAPIuvicorn.run(app, host="0.0.0.0", port=XXXX)
说明:
xxxx
替换为4个数字,就是port号- 直接执行
python main.py
五、访问接口
- 主页:
http://127.0.0.1:8000/
- Swagger文档(自动生成):
http://127.0.0.1:8000/docs
(Swagger UI) - ReDoc文档(交互式API文档):
http://127.0.0.1:8000/redoc
六、如果需要跨域(CORS)
当你前后端分离部署或调用第三方接口时,可能会遇到跨域问题。此时可添加如下配置。
from fastapi.middleware.cors import CORSMiddlewareapp.add_middleware(CORSMiddleware,allow_origins=["*"],allow_credentials=True,allow_methods=["*"],allow_headers=["*"],
)
在app = FastAPI()
后面加上即可。
七、总结
这个示例展示了 FastAPI 的基本用法,涵盖:
- 接口定义(GET / POST)
- 请求体校验(基于 Pydantic)
- 自动生成交互式 API 文档
- 跨域处理配置
- 使用 Uvicorn 启动服务
FastAPI 支持异步编程、高性能、类型注解验证等特性,适合开发现代 Web API。如果需要实现更复杂的功能(如数据库连接、用户认证、JWT 登录、异步任务等),可以在此基础上进一步扩展。