使用(Python)FastAPI快速构建你的后端接口服务

简介: 使用(Python)FastAPI快速构建你的后端接口服务

FastAPI是一个基于 Python 的后端框架,该框架鼓励使用 Pydantic 和 OpenAPI (以前称为 Swagger) 进行文档编制,使用 Docker 进行快速开发和部署以及基于 Starlette 框架进行的简单测试。


开发环境:Python3.6+

一、安装

pip install fastapi uvicorn


640.png


二、构建代码

创建一个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格式响应结果了:

640.jpg


这就是我们刚刚写的hello函数(默认路由)了.

下面我们可以访问一下刚才写的user接口,我们需要传入参数userid(指定整数类型),即可拿到返回值。

640.png


四、关于文档

我们创建的应用,FastAPI给我们也创建好相应的接口文档,方便使用者的调用和查看,对开发者来说非常友好,也省去了我们写文档的时间了!

打开http://127.0.0.1:8000/docs,就可以查看你接口的api文档了~


这就是我们刚刚创建的两640.png个接口。

640.png

对于每个接口还有详细的说明以及测试请求。

640.png


除此之外,Fast API还提供了另一种书写风格说明文档,地址:

http://127.0.0.1:8000/redoc


640.jpg


五、更多开发指南

欢迎参考官网:https://fastapi.tiangolo.com/


640.jpg



以上便是FastAPI的入门指南,对于Django或是Flask来说,确实方便了很多,希望以后大家也可以多使用它来快速构建自己的后端接口~


相关文章
|
13天前
|
Java 程序员 编译器
作为后端开发,感受下接口带来的魅力!🔥🔥
在一场大厂面试中,小南被问及何时选用接口,何时采用抽象类。一位拥有24K粉丝的博主给出解答:选择取决于需求——接口定义多个类需遵守的契约,而抽象类则用于创建共享实现的基类。有时两者结合使用,通过抽象类实现接口以确保契约并提供通用功能。此外,小南还分享了关于抽象类的深入探讨,包括子类如何正确调用父类构造函数、访问父类成员以及父类不可访问的方法等细节。最后,他提出一个关于接口与抽象类差异的小测验,并邀请读者关注他的开源项目《Java学习进阶指南》,旨在帮助Java开发者更好地掌握核心知识和面试要点。
作为后端开发,感受下接口带来的魅力!🔥🔥
|
6天前
|
API 开发工具 网络架构
【Azure Developer】使用Python SDK去Azure Container Instance服务的Execute命令的疑问解释
Azure 容器实例(Azure Container Instances,简称 ACI)是一个无服务器容器解决方案,允许用户在 Azure 云环境中运行 Docker 容器,而无需设置虚拟机、集群或编排器。 ACI 适用于任何可以在隔离容器中操作的场景,包括事件驱动的应用程序、从容器开发管道快速部署、数据处理和生成作业。
|
12天前
|
Python
[python]使用gunicorn部署fastapi服务
[python]使用gunicorn部署fastapi服务
|
20天前
|
存储 开发框架 前端开发
循序渐进VUE+Element 前端应用开发(19)--- 后端查询接口和Vue前端的整合
循序渐进VUE+Element 前端应用开发(19)--- 后端查询接口和Vue前端的整合
|
5天前
|
API Python
在线问诊 Python、FastAPI、Neo4j — 提供咨询接口服务
在线问诊 Python、FastAPI、Neo4j — 提供咨询接口服务
10 0
|
5天前
|
算法 Python
在线问诊 Python、FastAPI、Neo4j — 构建问题分类器
在线问诊 Python、FastAPI、Neo4j — 构建问题分类器
11 0
|
12天前
|
Python
[python]使用gunicorn部署fastapi服务
【8月更文挑战第6天】以下是使用`gunicorn`部署`FastAPI`服务的简要步骤:首先安装`FastAPI`与`gunicorn`;创建一个简单的`FastAPI`应用,例如定义根路径返回"Hello World";保存代码为`main.py`;在应用目录中启动`gunicorn`服务,如`gunicorn main:app -w 4 -b 0.0.0.0:8000`,其中`-w 4`指定4个工作进程,`-b`绑定至所有IP的8000端口。这样就完成了基础部署,可通过`http://服务器IP:8000/`访问应用。
|
18天前
|
开发框架 前端开发 API
使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的业务编码规则管理
使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的业务编码规则管理
|
20天前
|
开发框架 前端开发 关系型数据库
使用egg.js开发后端API接口系统 什么是Egg.js
使用egg.js开发后端API接口系统 什么是Egg.js