创建API,即应用程序编程接口(API: application programming interface)。本教程介绍FastAPI的主要概念,以及如何使用它来快速创建Web APIs。
到最后,你将能够开始创建生产就绪的Web API,而且你将有必要深入了解,为你的特定用例学习更多知识。
本教程是由FastAPI的作者编写的。它包含了从官方文档中精心挑选的片段,避免了在技术细节上的迷失,同时帮助你尽可能快地进入状态。
FastAPI是现代的、高性能的网络框架,用于用Python构建基于标准类型提示的API。特点:
# pip install fastapi uvicorn
FastAPI用来构建API,而Uvicorn是使用API来服务请求的服务器。
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
执行
$ uvicorn main:app --reload
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [22487] using statreload
INFO: Started server process [22489]
INFO: Waiting for application startup.
INFO: Application startup complete.
使用了--reload,当你更新你的应用程序代码时,服务器将自动重新加载。
用浏览器打开http://127.0.0.1:8000,内容如下。
{"message": "Hello World"}
该JSON消息与你在应用程序中从函数中返回的字典相同。FastAPI负责将Python dict序列化为JSON对象,并设置适当的内容类型。
在浏览器中打开http://127.0.0.1:8000/docs,你会看到由Swagger UI提供的自动交互式API文档。
另一种自动生成的交互式API文档在:http://127.0.0.1:8000/redoc。
由于FastAPI是基于像OpenAPI这样的标准,有许多方法来显示API文档。FastAPI默认提供这两种方式。
FastAPI是一个Python类,为你的API提供所有的功能。
这里的app变量将是FastAPI类的实例。这将是创建你的API的主要交互点。
常见的HTTP方法如下:
@app.get("/")告诉FastAPI,下面的函数负责处理使用get操作去往路径/的请求。这是与路径操作有关的装饰器,或者说是路径操作装饰器。如果你想了解更多关于装饰器的信息,那么请看Python装饰器的入门手册。
其他操作有:
也可以把它定义为一个普通的函数,而不是使用async def,改成def即可。
如果你不知道普通函数和async函数的区别以及何时使用它们,请查看FastAPI文档中的并发和async/await。参考:Concurrency and async/await
可以返回一个字典、列表,或者是字符串、整数等的单数值。你还可以返回pydantic模型。
还有许多其他的对象和模型将被自动转换为JSON,包括对象关系映射器object-relational mappers (ORMs)和其他。
页面更新:2024-04-27
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号