前言:RESTful API 可以让前端与后端实现分离,提高开发效率和灵活性。FastAPI 是一款高性能的 Python Web 框架,可以快速地开发 RESTful API。本文将介绍 FastAPI 的基本使用方法,并提供详细的示例代码。
环境准备
安装 Python3.7 或以上版本,并且使用 pip 安装 FastAPI 和 uvicorn:
pip install fastapi pip install uvicorn
创建一个简单的 API
使用 FastAPI 创建一个简单的 GET API,用于返回一个 JSON 格式的字符串。首先,创建一个 Python 文件 main.py
:
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"}
可以使用以下命令启动服务:
uvicorn main:app --reload
在浏览器上输入 http://localhost:8000/
,可以看到返回的 JSON 格式的字符串:
{"message": "Hello World"}
定义 API 参数
FastAPI 支持通过路径参数、查询参数、请求体、请求头等方式传递参数。下面将演示如何定义一个需要传递路径参数和查询参数的 API。
@app.get("/items/{item_id}") async def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q}
接口路径为 /items/{item_id}
,其中 {item_id}
表示路径参数,需要传递一个整数类型的参数。q
参数为可选参数,可以通过查询字符串的方式传递。
例如,请求 http://localhost:8000/items/42?q=test
,返回结果:
{"item_id": 42, "q": "test"}
注意:路径参数和查询参数必须在函数参数中声明,参数名需要和路径或查询字符串中的参数名相同,并且需要指定参数的类型。
定义请求体
有时候我们需要在请求体中传递复杂的数据结构,例如 JSON 格式的数据。FastAPI 支持使用 Pydantic 模型定义请求体的数据结构。
-- -------------------- ---- ------- ---- ------ ------ ----- -------- ---- -------- ------ --------- ----- ---------------- ----- --- ------------ ------------- - ---- ------ ----- ---- --------------- - ---- -------------------- ----- --- ----------------- ------ ------ ----
上面的代码定义了一个 Item
类型的模型,包含 name
、description
、price
和 tax
四个属性。description
和 tax
属性为可选参数,如果没有传递则默认为 None。@app.post("/items/")
表示这是一个 POST 请求的 API。
使用 Postman 发送 POST 请求,请求体为 JSON 格式的数据,例如:
{ "name": "Apple", "description": "A fruit", "price": 5.5, "tax": 0.5 }
返回结果:
{ "name": "Apple", "description": "A fruit", "price": 5.5, "tax": 0.5 }
异步请求
FastAPI 使用异步框架来处理请求,可以极大地提高性能。对于需要处理 I/O 操作的应用程序,使用异步请求可以更好地利用 CPU 和内存资源。
使用 async/await
关键字可以定义异步函数,例如:
-- -------------------- ---- ------- ------ ------- ---- ------- ------ ------- --- - --------- ------------- ----- --- ------- ----- ---------------- - -- --- -- ------ ----------- ------ -------
在函数中使用 await asyncio.sleep(1)
模拟了一个 1 秒钟的 I/O 操作。这时候如果有其他请求到来,FastAPI 会继续处理这个请求,不会阻塞等待上一个请求的完成。
总结
FastAPI 是一款高性能、易于学习的 Python Web 框架,可以快速地开发 RESTful API 接口。本文介绍了 FastAPI 的基本使用方法,并提供了详细的示例代码,希望能对读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6463da08968c7c53b04d49b4