如何使用 FastAPI 开发 RESTful API

阅读时长 4 分钟读完

前言:RESTful API 可以让前端与后端实现分离,提高开发效率和灵活性。FastAPI 是一款高性能的 Python Web 框架,可以快速地开发 RESTful API。本文将介绍 FastAPI 的基本使用方法,并提供详细的示例代码。

环境准备

安装 Python3.7 或以上版本,并且使用 pip 安装 FastAPI 和 uvicorn:

创建一个简单的 API

使用 FastAPI 创建一个简单的 GET API,用于返回一个 JSON 格式的字符串。首先,创建一个 Python 文件 main.py

可以使用以下命令启动服务:

在浏览器上输入 http://localhost:8000/,可以看到返回的 JSON 格式的字符串:

定义 API 参数

FastAPI 支持通过路径参数、查询参数、请求体、请求头等方式传递参数。下面将演示如何定义一个需要传递路径参数和查询参数的 API。

接口路径为 /items/{item_id},其中 {item_id} 表示路径参数,需要传递一个整数类型的参数。q 参数为可选参数,可以通过查询字符串的方式传递。

例如,请求 http://localhost:8000/items/42?q=test,返回结果:

注意:路径参数和查询参数必须在函数参数中声明,参数名需要和路径或查询字符串中的参数名相同,并且需要指定参数的类型。

定义请求体

有时候我们需要在请求体中传递复杂的数据结构,例如 JSON 格式的数据。FastAPI 支持使用 Pydantic 模型定义请求体的数据结构。

-- -------------------- ---- -------
---- ------ ------ ----- --------
---- -------- ------ ---------

----- ----------------
    ----- ---
    ------------ ------------- - ----
    ------ -----
    ---- --------------- - ----

--------------------
----- --- ----------------- ------
    ------ ----

上面的代码定义了一个 Item 类型的模型,包含 namedescriptionpricetax 四个属性。descriptiontax 属性为可选参数,如果没有传递则默认为 None。@app.post("/items/") 表示这是一个 POST 请求的 API。

使用 Postman 发送 POST 请求,请求体为 JSON 格式的数据,例如:

返回结果:

异步请求

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

纠错
反馈