FastAPI是一个基于 Python 的后端框架,该框架鼓励使用 Pydantic 和 OpenAPI (以前称为 Swagger) 进行文档编制,使用 Docker 进行快速开发和部署以及基于 Starlette 框架进行的简单测试。
开发环境:Python3.6+
一、安装
pip install fastapi uvicorn
二、构建代码
创建一个main.py文件。引入FastAPI这个模块,就可以构建接口了!
from fastapi import FastAPI, Query app = FastAPI() @app.get("/") def hello(): return {"Hello": "World"} @app.get('/user') async def user( *, user_id: int = Query(..., title="The ID", gt=0) ): return {'user_id': user_id}
就和flask一样,实例化app,在每个接口函数上加上路由就可以了。这边写了个简单的hello world可以了解一下。
这里有必要说明一下,例如我们 /user 接口,它在指明参数的时候对参数做了限制,只能使用int类型的数据,这是因为Fast API是基于Pydantic开发的(Pydantic主要就是用来做强制类型检测的)。
除了get,我们也可以创建post接口:
@app.post('/user/update') async def update_user( *, user_id: int, really_update: int = Query(...) ): return {'user_id': user_id}
三、运行你的接口应用
和其他的模块不一样的是,FastAPI需要运行指定命令来运行api服务:
需要在当前目录下执行下面的命令,他会主动去找到main入口:
uvicorn main:app --reload
运行成功后在浏览器打开http://127.0.0.1:8000
或者http://localhost:8000 ,你就可以拿到hello方法(默认路由)返回的JSON格式响应结果了:
这就是我们刚刚写的hello函数(默认路由)了.
下面我们可以访问一下刚才写的user接口,我们需要传入参数userid(指定整数类型),即可拿到返回值。
四、关于文档
我们创建的应用,FastAPI给我们也创建好相应的接口文档,方便使用者的调用和查看,对开发者来说非常友好,也省去了我们写文档的时间了!
打开http://127.0.0.1:8000/docs,就可以查看你接口的api文档了~
这就是我们刚刚创建的两个接口。
对于每个接口还有详细的说明以及测试请求。
除此之外,Fast API还提供了另一种书写风格说明文档,地址:
五、更多开发指南
欢迎参考官网:https://fastapi.tiangolo.com/
以上便是FastAPI的入门指南,对于Django或是Flask来说,确实方便了很多,希望以后大家也可以多使用它来快速构建自己的后端接口~