FastAPI 学习之路(二十)接口文档配置相关

本文介绍如何使用FastAPI对API接口进行分组、添加描述及标记接口为废弃的方法。通过实例演示了如何设置tags参数来组织接口,并展示了如何利用summary和description参数增强文档的可读性。

我们都知道,fastApi给我们提供了接口文档,在我们的实际开发中,我们会有很多的接口,有些接口需要分组,比如我们对于登录注册相关的模块,可以统一放在登录,那么我们如何实现划分呢。

from fastapi import FastAPI

app = FastAPI()


@app.post("/login", tags=["login"])
def login(username: str, password: str):
    if username == "lc" and password == "123":
        return "success"
    return {"msg": "name or password error"}


@app.post("/register", tags=["login"])
def resgister(username: str, password: str):
    return {"msg": "success"}

我们看下,接口文档

可以看到,我们实现的登录的模块是成功的。

 我们来看下,如何对接口增加一个简单的描述(增加description参数)

from fastapi import FastAPI

app = FastAPI()


@app.post("/login", tags=["login"], description="这是登录接口")
def login(username: str, password: str):
    if username == "lc" and password == "123":
        return "success"
    return {"msg": "name or password error"}


@app.post("/register", 
在使用 FastAPI 编写 API 接口文档时,可以通过其内置的自动化文档生成功能来实现。FastAPI 提供了两种常见的文档界面:Swagger UI(用于 Docs)和 ReDoc。此外,还可以通过配置路径来满足特定的 URL 需求。 ### 接口文档配置 FastAPI 默认会生成 OpenAPI 文档,并提供交互式的接口文档页面。可以自定义这些页面的访问路径,例如加上 `/api` 前缀。以下是配置示例: ```python from fastapi import FastAPI app = FastAPI( openapi_url="/api/data_manger.json", docs_url="/api/docs", redoc_url="/api/redoc" ) ``` 此配置允许开发者通过指定路径访问接口文档,如 `/api/docs` 用于 Swagger UI 页面,`/api/redoc` 用于 ReDoc 页面,以及 `/api/data_manger.json` 作为 OpenAPI 文档的 JSON 文件路径 [^1]。 ### 编写 API 接口 为了生成接口文档,需要编写 API 接口函数。以下是一个读取商品详情数据的接口示例: ```python from fastapi import FastAPI app = FastAPI() # 模拟商品详情数据,实际中可从数据库获取 products = { "1": { "name": "示例商品1", "price": 99.99, "description": "这是一款示例商品,具有不错的功能。", "category": "电子产品" }, "2": { "name": "示例商品2", "price": 49.99, "description": "另一个示例商品,很实用。", "category": "生活用品" } } @app.get("/product/{product_id}") async def get_product_detail(product_id: str): """ 根据商品ID获取商品详情的接口函数 """ product = products.get(product_id) if product: return product return {"message": "未找到该商品"} ``` 在上述代码中,`@app.get("/product/{product_id}")` 定义了一个 GET 请求接口,用于根据商品 ID 获取商品详情信息。FastAPI 会自动将此接口信息加入接口文档中 [^2]。 ### 文档生成与访问 启动应用后,可以通过配置的路径访问接口文档页面。例如,如果应用运行在本地服务器上,则可以通过以下链接访问: - **Swagger UI**:[http://localhost:8000/api/docs](http://localhost:8000/api/docs) - **ReDoc**:[http://localhost:8000/api/redoc](http://localhost:8000/api/redoc) 这些页面会展示所有定义的 API 接口及其参数、请求方式和返回值等详细信息。 ### 自定义文档内容 除了路径配置,还可以通过添加描述信息、参数说明等进一步自定义接口文档内容。例如,在接口函数中添加详细的文档字符串(docstring),FastAPI 会将其自动纳入接口文档中。 ```python @app.get("/product/{product_id}") async def get_product_detail(product_id: str): """ 根据商品ID获取商品详情。 - **product_id**: 商品的唯一标识符 - 返回商品的名称、价格、描述和分类信息。 - 如果商品不存在,返回提示信息。 """ product = products.get(product_id) if product: return product return {"message": "未找到该商品"} ``` 通过这种方式,可以确保接口文档不仅展示接口的基本信息,还能提供更丰富的使用说明和参数描述。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值