发布时间:2026/7/6 4:00:56
FastAPI 新手入门第 8 篇:让 /docs 更像一份 API 文档
上一篇我们用APIRouter把接口拆到了不同文件里。代码变清楚了但打开/docs时接口还是一排排堆在那里。这一篇我想把/docs往前再推一步给接口分组加上简短说明。做完后items、users、system会分开显示点开接口时也能知道这个接口用来做什么。先把接口分组现在项目里有三个路由文件app/routers/ items.py users.py health.py我希望/docs里也按这三类来展示。最小改动是在APIRouter上加tags。items.py只看这一行fromfastapiimportAPIRouter routerAPIRouter(prefix/items,tags[items])这里顺手把prefix/items也放到了路由上。这样文件里的接口就不用反复写/itemsrouter.get(,response_modellist[ItemPublic])deflist_items():...router.get(/{item_id},response_modelItemPublic)defread_item(item_id:int):...最后生成的路径仍然是GET /items GET /items/{item_id}只是/items这段公共路径被放到了APIRouter上。users.py也一样routerAPIRouter(prefix/users,tags[users])health.py不需要路径前缀只加分组routerAPIRouter(tags[system])保存后重启服务打开http://127.0.0.1:8000/docs这时接口会按items、users、system分开。读接口的人不用从一长串列表里猜哪些接口属于同一块。给接口加一句说明分组解决的是“接口放在哪里”。点开接口后还要让人知道“这个接口干什么”。FastAPI 的路径操作可以直接加summary和descriptionrouter.get(/{item_id},response_modelItemPublic,summary获取单个商品,description根据商品 ID 查询商品。商品不存在时返回 404。,)defread_item(item_id:int,token:strDepends(get_token_header)):ifitem_idnotinfake_items_db:raiseHTTPException(status_code404,detailItem not found)returnfake_items_db[item_id]重点看summary和description。summary是接口列表里那句短说明description是点开接口后展示的详细说明。我会把summary写短把description写成读者能直接用的信息。比如“不存在时返回 404”比“用于查询商品资源”更有用。POST /items也加上说明router.post(,response_modelItemPublic,summary创建商品,description接收创建商品需要的字段服务端会补上 ID 和内部字段。,)defcreate_item(item:ItemCreate,token:strDepends(get_token_header)):...这句说明也给后面的第 10 篇埋了一个点创建请求里只传业务输入服务端会补一些内部字段但响应里不会全部暴露。给分组本身加说明接口能分组之后还可以给每个分组加说明。这部分放在main.py里openapi_tags[{name:items,description:商品相关接口用来练习列表、查询和创建。,},{name:users,description:用户相关接口目前只保留最小查询示例。,},{name:system,description:系统状态接口用来检查服务是否正常。,},]appFastAPI(titleFastAPI Beginner Lab,openapi_tagsopenapi_tags,)openapi_tags里的name要和前面tags[items]里的名字一致。名字对上后/docs才知道这段说明属于哪个分组。刷新/docs每个分组下面会出现对应描述。/docs不是给别人看的摆设我以前刚接触自动文档时会把它当成“框架附赠的页面”。写一段时间后才发现/docs对新手最有用的地方不是好看而是能帮我们确认三件事路径有没有挂上去接口没出现在/docs大概率是路由没注册。参数有没有被识别请求头、查询参数、请求体会直接显示出来。返回结构是否符合预期响应模型会影响文档里的响应说明。所以我会在每次改路由后打开/docs看一眼。它不是最终给产品经理看的完整接口文档但在开发阶段很省事。动手改一下给/health接口加上summary并把它放进system分组。app/routers/health.py可以这样写fromfastapiimportAPIRouter routerAPIRouter(tags[system])router.get(/health,summary查看服务状态,description返回服务是否可用。,)defhealth_check():return{status:ok}保存后刷新/docs。如果/health出现在system分组里并且点开后能看到“查看服务状态”这篇就算学完。到这里这篇的目标已经完成我们用tags把接口按items、users、system分组。我们用summary和description给接口补了说明。我们知道了/docs可以用来检查路由、参数和响应结构。本文代码https://github.com/tanghaojin/fastapi-beginner-lab/tree/article-08-docs-metadata下一篇解决另一个问题配置不要写死在代码里用环境变量来管理项目配置。参考资料FastAPI Metadata and Docs URLs: https://fastapi.tiangolo.com/tutorial/metadata/FastAPI Path Operation Configuration: https://fastapi.tiangolo.com/tutorial/path-operation-configuration/

相关新闻

AI 已经改变工作方式,我们该怎么适应这场变化?
2026/7/6 4:00:56

AI 已经改变工作方式,我们该怎么适应这场变化?

AI 带来的变化,已经不再只是“多了一个工具”。 它正在改变工作的分工方式、能力评价方式、组织结构,甚至改变一个人如何证明自己的价值。 过去,一个人掌握某项技能,往往可以依靠这项技能稳定工作很多年。 现在,AI 可以…

阅读更多
:NLP任务的首次大一统
2026/7/6 4:00:56

:NLP任务的首次大一统

把分类、摘要、问答、翻译等一切 NLP 任务都塞进一个框架里:输入是文本,输出也是文本。 从地位和后续影响来说,T5 可以说是现代自然语言指令对话的起点,是对 NLP 任务形式的首次大一统,因此,本篇同样先展开…

阅读更多
AI大模型应用开发实战:从零构建RAG智能问答系统
2026/7/6 3:00:56

AI大模型应用开发实战:从零构建RAG智能问答系统

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在技术社区里,一个名为“AI大模型入门教程”的项目获得了惊人的80K星标,这背后反映了一个普遍现象&#x…

阅读更多
ANI-RSS刮削功能完全指南:3分钟打造专业级媒体库元数据
2026/7/6 5:00:58

ANI-RSS刮削功能完全指南:3分钟打造专业级媒体库元数据

ANI-RSS刮削功能完全指南:3分钟打造专业级媒体库元数据 【免费下载链接】ani-rss 基于RSS自动追番、订阅、下载、刮削、洗版 项目地址: https://gitcode.com/gh_mirrors/an/ani-rss 还在为杂乱无章的动漫收藏烦恼吗?想让你的媒体库像Netflix一样精…

阅读更多
硅基流动递表港交所:Token 工厂的“高增长、高亏损“困局
2026/7/6 5:00:58

硅基流动递表港交所:Token 工厂的“高增长、高亏损“困局

6 月 30 日,北京硅基流动科技股份有限公司向港交所递交上市申请,拟按第 18C 章"特专科技公司"规则在主板挂牌,华泰国际和海通国际担任联席保荐人。这家 2023 年 8 月才成立的公司,把自己定位成 AI 时代的"Token 工…

阅读更多
如何快速提升Linux游戏性能:DXVK 2.7.1完整指南
2026/7/6 5:00:58

如何快速提升Linux游戏性能:DXVK 2.7.1完整指南

如何快速提升Linux游戏性能:DXVK 2.7.1完整指南 【免费下载链接】dxvk Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk 你是否曾在Linux系统上运行Windows游戏时遭遇卡顿和性能瓶颈…

阅读更多
学习计划表:鸿蒙AI应用开发实战——AI学习规划,高效备考不焦虑v
2026/7/6 5:00:58

学习计划表:鸿蒙AI应用开发实战——AI学习规划,高效备考不焦虑v

学习计划表:鸿蒙AI应用开发实战——AI学习规划,高效备考不焦虑 一、引言 “我要学习!”——这是很多人立下的flag,但真正执行起来却困难重重。没有明确的学习计划、不知道每天学什么、如何分配时间,这些问题往往导致学…

阅读更多
Python实现仿射密码:从古典密码原理到加解密实战
2026/7/6 5:00:58

Python实现仿射密码:从古典密码原理到加解密实战

1. 项目概述:从古典密码到Python实现如果你对密码学感兴趣,想找一个既有数学美感又容易上手的入门项目,仿射密码绝对是个绝佳的选择。它不像现代密码学那样涉及复杂的数学理论,但其核心的线性变换思想,却是理解更高级加…

阅读更多
【译】组织好你的Asp.Net MVC解决方案
2026/7/6 4:00:56

【译】组织好你的Asp.Net MVC解决方案

最近,Twitter上发起了一个一个关于“你最爱的Asp.net MVC项目组织方式”,我自己研究了一些组织项目文件的方法。而我现在一直喜欢用的方式是一个几句灵活性的方式,此外,这个方式还非常简单。如上图,整个解决方案里只有两个项目,首…

阅读更多
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御
2026/7/5 0:00:50

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

阅读更多
3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略
2026/7/5 0:00:50

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾为Windows右键菜单中那些…

阅读更多
GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复
2026/7/5 0:00:50

GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复

如果你正在用 GXDE OS 或者任何基于 Deepin 的发行版,并且遇到了“检测到窗口系统采用 Wayland 协议,程序即将退出”这类弹窗,或者发现 VMware Tools 在 Ubuntu 24.04 这类默认 Wayland 的系统上启动失败,那这篇文章就是为你准备的…

阅读更多
星露谷物语终极MOD指南:5个步骤打造智能自动化农场
2026/7/6 0:00:56

星露谷物语终极MOD指南:5个步骤打造智能自动化农场

星露谷物语终极MOD指南:5个步骤打造智能自动化农场 【免费下载链接】StardewMods Mods for Stardew Valley using SMAPI. 项目地址: https://gitcode.com/gh_mirrors/st/StardewMods 你是否厌倦了在星露谷物语中重复收割、加工、存储的繁琐操作?梦…

阅读更多
免费二维码修复工具终极指南:三步拯救损坏二维码
2026/7/6 0:00:56

免费二维码修复工具终极指南:三步拯救损坏二维码

免费二维码修复工具终极指南:三步拯救损坏二维码 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 你是否曾经面对一个损坏的二维码束手无策?模糊、破损、打印质量差的二…

阅读更多
acme.sh私钥加密存储:基于OpenSSL的自动化证书安全管理方案
2026/7/6 0:00:56

acme.sh私钥加密存储:基于OpenSSL的自动化证书安全管理方案

1. 项目概述:为什么我们需要加密存储私钥?在运维和开发领域,使用 Let‘s Encrypt 等免费 CA 通过 ACME 协议自动化签发和管理 SSL/TLS 证书,已经成为标准实践。acme.sh作为这个领域的佼佼者,以其轻量、强大和脚本化的特…

阅读更多
基于Dify与DeepSeek构建私有知识库问答系统实战指南
2026/7/4 11:17:16

基于Dify与DeepSeek构建私有知识库问答系统实战指南

在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…

阅读更多
FAE放射组学分析工具:医学影像特征探索的完整解决方案
2026/7/4 5:24:16

FAE放射组学分析工具:医学影像特征探索的完整解决方案

FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…

阅读更多
DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!
2026/7/5 15:33:35

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖! 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版,思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址:…

阅读更多