系列文章:
FastAPI 学习之路(一)fastapi--高性能web开发框架
FastAPI 学习之路(二)
FastAPI 学习之路(三)
FastAPI 学习之路(四)
FastAPI 学习之路(五)
FastAPI 学习之路(七)字符串的校验
FastAPI 学习之路(八)路径参数和数值的校验
FastAPI 学习之路(九)请求体有多个参数如何处理?
FastAPI 学习之路(十)请求体的字段
FastAPI 学习之路(十二)接口几个额外信息和额外数据类型
FastAPI 学习之路(十三)Cookie 参数,Header参数
FastAPI 学习之路(十四)响应模型
FastAPI 学习之路(十五)响应状态码
FastAPI 学习之路(十六)Form表单
FastAPI 学习之路(十七)上传文件
FastAPI 学习之路(十八)表单与文件
FastAPI 学习之路(十九)处理错误
我们都知道,fastApi给我们提供了接口文档,在我们的实际开发中,我们会有很多的接口,有些接口需要分组,比如我们对于登录注册相关的模块,可以统一放在登录,那么我们如何实现划分呢。
from fastapi import FastAPI app = FastAPI() @app.post("/login/", tags=["login"]) def login(username: str,password:str): if username == "leizi" and password=="123": return "success" return {"name": username} @app.post("/regin/", tags=["login"]) def regin(username: str,password:str): return {"name": username}
我们看下,接口文档
可以看到,我们实现的登录的模块是成功的。
我们来看下,如何对接口增加一个简单的描述
from fastapi import FastAPI app = FastAPI() @app.post("/login/", tags=["login"],description="这是登录模块") def login(username: str,password:str): if username == "leizi" and password=="123": return "success" return {"name": username} @app.post("/regin/", tags=["login"]) def regin(username: str,password:str): return {"name": username}
我们看下接口
如果我们想要把所有的注释以给读取出来,然后展示在描述中,fastapi也给我们做了很好的封装,我们可以简单的看下代码
from fastapi import FastAPI app = FastAPI() @app.post("/login/", tags=["login"],summary="这是登录模块") def login(username: str,password:str): """ 登录 - param username: 用户名 - param password: 密码 - return: 返回是否成功 """ if username == "leizi" and password=="123": return "success" return {"name": username} @app.post("/regin/", tags=["login"]) def regin(username: str,password:str): return {"name": username}
我们看下最后的实现的效果
如果我们要标注接口启用怎么实现呢
from fastapi import FastAPI app = FastAPI() @app.post("/login/", tags=["login"],summary="这是登录模块") def login(username: str,password:str): """ 登录 - param username: 用户名 - param password: 密码 - return: 返回是否成功 """ if username == "leizi" and password=="123": return "success" return {"name": username} @app.post("/regin/", tags=["login"],deprecated=True) def regin(username: str,password:str): return {"name": username}
我们可以接口文档的展示