python高效web API开发库FastAPI快速入门教程1简介

创建API,即应用程序编程接口(API: application programming interface)。本教程介绍FastAPI的主要概念,以及如何使用它来快速创建Web APIs。

到最后,你将能够开始创建生产就绪的Web API,而且你将有必要深入了解,为你的特定用例学习更多知识。

本教程是由FastAPI的作者编写的。它包含了从官方文档中精心挑选的片段,避免了在技术细节上的迷失,同时帮助你尽可能快地进入状态。

python高效web API开发库FastAPI快速入门教程1简介

什么是FastAPI?

FastAPI是现代的、高性能的网络框架,用于用Python构建基于标准类型提示的API。特点:

安装FastAPI

# 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文档。

python高效web API开发库FastAPI快速入门教程1简介

另一种自动生成的交互式API文档在:http://127.0.0.1:8000/redoc。

python高效web API开发库FastAPI快速入门教程1简介

由于FastAPI是基于像OpenAPI这样的标准,有许多方法来显示API文档。FastAPI默认提供这两种方式。

FastAPI是一个Python类,为你的API提供所有的功能。

这里的app变量将是FastAPI类的实例。这将是创建你的API的主要交互点。

常见的HTTP方法如下:


python高效web API开发库FastAPI快速入门教程1简介

@app.get("/")告诉FastAPI,下面的函数负责处理使用get操作去往路径/的请求。这是与路径操作有关的装饰器,或者说是路径操作装饰器。如果你想了解更多关于装饰器的信息,那么请看Python装饰器的入门手册。

其他操作有:


python高效web API开发库FastAPI快速入门教程1简介

也可以把它定义为一个普通的函数,而不是使用async def,改成def即可。

如果你不知道普通函数和async函数的区别以及何时使用它们,请查看FastAPI文档中的并发和async/await。参考:Concurrency and async/await

可以返回一个字典、列表,或者是字符串、整数等的单数值。你还可以返回pydantic模型。

还有许多其他的对象和模型将被自动转换为JSON,包括对象关系映射器object-relational mappers (ORMs)和其他。

python高效web API开发库FastAPI快速入门教程1简介

展开阅读全文

页面更新:2024-04-27

标签:快速   高效   字典   应用程序   路径   函数   入门   模型   入门教程   对象   错误   类型   代码   操作   文档   服务器   标准   简介   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top