# 帮助 FastAPI - 获取帮助 { #help-fastapi-get-help } 你喜欢 **FastAPI** 吗? 想帮助 FastAPI、其他用户和作者吗? 或者你想获取 **FastAPI** 的帮助? 有很多非常简单的方式可以帮忙(有些只需点一两下)。 同样,也有多种途径可以获得帮助。 ## 订阅新闻邮件 { #subscribe-to-the-newsletter } 你可以订阅(不频繁的)[**FastAPI and friends** 新闻邮件](newsletter.md),获取如下更新: * FastAPI 及其小伙伴的新闻 🚀 * 指南 📝 * 功能 ✨ * 破坏性更改 🚨 * 使用技巧 ✅ ## 在 X (Twitter) 上关注 FastAPI { #follow-fastapi-on-x-twitter } [在 **X (Twitter)** 上关注 @fastapi](https://x.com/fastapi) 获取 **FastAPI** 的最新动态。🐦 ## 在 GitHub 上为 **FastAPI** 加星 { #star-fastapi-in-github } 你可以在 GitHub 上为 FastAPI 点亮「星标」(点击右上角的星形按钮):[https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)。⭐️ 点亮星标后,其他用户更容易发现它,并看到它已经对许多人有帮助。 ## 关注 GitHub 资源库的版本发布 { #watch-the-github-repository-for-releases } 你可以在 GitHub 上「关注」FastAPI(点击右上角的「watch」按钮):[https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)。👀 在那里你可以选择「Releases only」。 这样做之后,每当 **FastAPI** 发布新版本(包含修复和新功能),你都会收到通知(邮件)。 ## 联系作者 { #connect-with-the-author } 你可以联系[我(Sebastián Ramírez / `tiangolo`)](https://tiangolo.com),作者本人。 你可以: * [在 **GitHub** 上关注我](https://github.com/tiangolo)。 * 了解我创建的其他开源项目,也许对你有帮助。 * 关注我何时创建新的开源项目。 * 关注我在 [**X (Twitter)**](https://x.com/tiangolo) 或 [Mastodon](https://fosstodon.org/@tiangolo)。 * 告诉我你如何使用 FastAPI(我很喜欢听这些)。 * 获取我发布公告或新工具的消息。 * 你也可以[在 X (Twitter) 上关注 @fastapi](https://x.com/fastapi)(独立账号)。 * [在 **LinkedIn** 上关注我](https://www.linkedin.com/in/tiangolo/)。 * 获取我发布公告或新工具的消息(不过我更常用 X (Twitter) 🤷‍♂)。 * 阅读我在 [**Dev.to**](https://dev.to/tiangolo) 或 [**Medium**](https://medium.com/@tiangolo) 上的文章(或关注我)。 * 阅读我的其他想法、文章,以及我创建的工具。 * 关注我,这样当我发布新文章时你会第一时间看到。 ## 发推谈谈 **FastAPI** { #tweet-about-fastapi } [发推谈谈 **FastAPI**](https://x.com/compose/tweet?text=I'm loving @fastapi because... https://github.com/fastapi/fastapi),告诉我和大家你为什么喜欢它。🎉 我很高兴听到 **FastAPI** 的使用情况、你喜欢它的哪些点、你在哪个项目/公司使用它,等等。 ## 为 FastAPI 投票 { #vote-for-fastapi } * [在 Slant 上为 **FastAPI** 投票](https://www.slant.co/options/34241/~fastapi-review)。 * [在 AlternativeTo 上为 **FastAPI** 投票](https://alternativeto.net/software/fastapi/about/)。 * [在 StackShare 上标注你在用 **FastAPI**](https://stackshare.io/pypi-fastapi)。 ## 在 GitHub 上帮别人解答问题 { #help-others-with-questions-in-github } 你可以尝试在以下地方帮助他人解答问题: * [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered) * [GitHub Issues](https://github.com/fastapi/fastapi/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Aquestion+-label%3Aanswered+) 很多情况下,你也许已经知道这些问题的答案了。🤓 如果你帮助了很多人解答问题,你会成为官方的 [FastAPI 专家](fastapi-people.md#fastapi-experts)。🎉 只要记住,最重要的一点是:尽量友善。人们带着挫败感而来,很多时候他们的提问方式并不理想,但请尽你所能地友好对待。🤗 我们的目标是让 **FastAPI** 社区友好且包容。同时,也不要接受对他人的霸凌或不尊重。我们需要彼此照顾。 --- 以下是如何帮助他人解答问题(在 Discussions 或 Issues 中): ### 理解问题 { #understand-the-question } * 看看你是否能理解提问者的**目的**和使用场景。 * 然后检查问题(绝大多数是提问)是否**清晰**。 * 很多时候,问题是围绕提问者想象中的解决方案,但可能有**更好的**方案。如果你更好地理解了问题和使用场景,你就可能提出更**合适的替代方案**。 * 如果你没能理解问题,请请求更多**细节**。 ### 复现问题 { #reproduce-the-problem } 在大多数情况下与问题相关的都是提问者的**原始代码**。 很多时候他们只会粘贴一小段代码,但这不足以**复现问题**。 * 你可以请他们提供一个[可最小复现的示例](https://stackoverflow.com/help/minimal-reproducible-example),你可以**复制粘贴**并在本地运行,看到与他们相同的错误或行为,或者更好地理解他们的用例。 * 如果你非常热心,你也可以尝试仅根据问题描述自己**构造一个示例**。不过要记住,这可能会花很多时间,通常先请他们澄清问题会更好。 ### 提出解决方案 { #suggest-solutions } * 在能够理解问题之后,你可以给出一个可能的**答案**。 * 很多情况下,更好的是去理解他们**底层的问题或场景**,因为可能存在比他们尝试的方法更好的解决方式。 ### 请求关闭问题 { #ask-to-close } 如果他们回复了,很有可能你已经解决了他们的问题,恭喜,**你是英雄**!🦸 * 现在,如果问题已解决,你可以请他们: * 在 GitHub Discussions 中:将你的评论标记为**答案**。 * 在 GitHub Issues 中:**关闭**该 issue。 ## 关注 GitHub 资源库 { #watch-the-github-repository } 你可以在 GitHub 上「关注」FastAPI(点击右上角的「watch」按钮):[https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)。👀 如果你选择「Watching」而非「Releases only」,当有人创建新的 issue 或问题时你会收到通知。你也可以指定只通知新 issues、discussions、PR 等。 然后你就可以尝试帮助他们解决这些问题。 ## 提问 { #ask-questions } 你可以在 GitHub 资源库中[创建一个新问题(Question)](https://github.com/fastapi/fastapi/discussions/new?category=questions),例如: * 提出一个**问题**或关于某个**问题**的求助。 * 建议一个新的**功能**。 **注意**:如果你这么做了,我也会请你去帮助其他人。😉 ## 审阅 Pull Request { #review-pull-requests } 你可以帮我审阅他人的 Pull Request。 再次提醒,请尽力保持友善。🤗 --- 下面是需要注意的点,以及如何审阅一个 Pull Request: ### 理解问题 { #understand-the-problem } * 首先,确保你**理解这个 PR 要解决的问题**。它可能在 GitHub Discussion 或 issue 中有更长的讨论。 * 也有很大可能这个 PR 实际上并不需要,因为问题可以用**不同方式**解决。这种情况下你可以提出或询问该方案。 ### 不用过分担心风格 { #dont-worry-about-style } * 不用太在意提交信息风格等,我会在合并时 squash 并手动调整提交信息。 * 也不用过分担心代码风格规则,已经有自动化工具在检查。 如果还有其他风格或一致性需求,我会直接提出,或者我会在其上追加提交做必要修改。 ### 检查代码 { #check-the-code } * 检查并阅读代码,看看是否说得通,**在本地运行**并确认它确实解决了问题。 * 然后**评论**说明你已经这样做了,这样我就知道你确实检查过。 /// info | 信息 不幸的是,我不能仅仅信任那些有很多人批准的 PR。 多次发生过这样的情况:PR 有 3、5 个甚至更多的批准,可能是因为描述很吸引人,但当我检查时,它们实际上是坏的、有 bug,或者并没有解决它声称要解决的问题。😅 所以,真正重要的是你确实读过并运行过代码,并在评论里告诉我你做过这些。🤓 /// * 如果 PR 可以在某些方面简化,你可以提出建议,但没必要过分挑剔,很多东西比较主观(我也会有我自己的看法 🙈),因此尽量关注关键点更好。 ### 测试 { #tests } * 帮我检查 PR 是否包含**测试**。 * 确认在合并 PR 之前,测试**会失败**。🚨 * 然后确认合并 PR 之后,测试**能通过**。✅ * 很多 PR 没有测试,你可以**提醒**他们添加测试,或者你甚至可以自己**建议**一些测试。这是最耗时的部分之一,你能在这方面帮上大忙。 * 然后也请评论你做了哪些验证,这样我就知道你检查过。🤓 ## 创建 Pull Request { #create-a-pull-request } 你可以通过 Pull Request 为源代码[做贡献](contributing.md),例如: * 修正文档中的一个错别字。 * 通过[编辑这个文件](https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml)分享你创建或发现的关于 FastAPI 的文章、视频或播客。 * 请确保把你的链接添加到相应区块的开头。 * 帮助把[文档翻译](contributing.md#translations)成你的语言。 * 你也可以审阅他人创建的翻译。 * 提议新增文档章节。 * 修复现有 issue/bug。 * 记得添加测试。 * 添加新功能。 * 记得添加测试。 * 如果相关,记得补充文档。 ## 帮忙维护 FastAPI { #help-maintain-fastapi } 帮我一起维护 **FastAPI** 吧!🤓 有很多工作要做,其中大部分其实**你**都能做。 你现在就能做的主要事情有: * [在 GitHub 上帮别人解答问题](#help-others-with-questions-in-github)(见上面的章节)。 * [审阅 Pull Request](#review-pull-requests)(见上面的章节)。 这两项工作是**最耗时**的。这也是维护 FastAPI 的主要工作。 如果你能在这方面帮我,**你就是在帮我维护 FastAPI**,并确保它**更快更好地前进**。🚀 ## 加入聊天 { #join-the-chat } 加入 👥 [Discord 聊天服务器](https://discord.gg/VQjSZaeJmf) 👥,和 FastAPI 社区的小伙伴们一起交流。 /// tip | 提示 关于提问,请在 [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/new?category=questions) 中发布,这样更有机会得到 [FastAPI 专家](fastapi-people.md#fastapi-experts) 的帮助。 聊天仅用于其他日常交流。 /// ### 别在聊天里提问 { #dont-use-the-chat-for-questions } 请记住,聊天更偏向“自由交流”,很容易提出过于笼统、难以回答的问题,因此你可能收不到解答。 在 GitHub 中,模板会引导你写出恰当的问题,从而更容易获得好的回答,甚至在提问之前就能自己解决。而且在 GitHub 里,我能尽量确保最终回复每个问题,即使这需要一些时间。对聊天系统来说,我个人做不到这一点。😅 聊天系统中的对话也不像 GitHub 那样容易搜索,因此问答可能在聊天中淹没。而且只有在 GitHub 中的问答才会计入成为 [FastAPI 专家](fastapi-people.md#fastapi-experts) 的贡献,所以你在 GitHub 上更可能获得关注。 另一方面,聊天系统里有成千上万的用户,你几乎随时都能在那里找到聊得来的人。😄 ## 赞助作者 { #sponsor-the-author } 如果你的**产品/公司**依赖或与 **FastAPI** 相关,并且你想触达它的用户,你可以通过 [GitHub sponsors](https://github.com/sponsors/tiangolo) 赞助作者(我)。根据赞助层级,你还可能获得一些额外福利,比如在文档中展示徽章。🎁 --- 谢谢!🚀