fastapi-patterns
非同期API、依存性注入、Pydanticのリクエスト・レスポンスモデル、OpenAPIドキュメント、テスト、セキュリティ、本番対応のためのFastAPIパターン。
原文 · 译文未通过检查适用对象:软件开发与测试。自动收录 · 待核查。
原作者说明节选
从固定版本的 SKILL.md 提取,保留原文语言。以下内容属于作者说明,本站尚未验证安装、兼容或运行结果。
查看日文原文
原文涵盖的主题
- FastAPIパターン
- 使用するタイミング
- 仕組み
- プロジェクトレイアウト
- アプリケーションファクトリー
- Pydanticスキーマ
- 依存関係
- 非同期エンドポイント
本番指向のFastAPIサービスのためのパターン。 FastAPIアプリを構築またはレビューする場合。 ルーター、スキーマ、依存関係、データベースアクセスを分割する場合。 データベースや外部サービスを呼び出す非同期エンドポイントを記述する場合。 認証、認可、OpenAPIドキュメント、テスト、またはデプロイ設定を追加する場合。 FastAPI PRをコピー可能な例とリスクについて確認する場合。 FastAPIアプリを明示的な依存関係とサービスコードの上の薄いHTTPレイヤーとして扱います: main.py はアプリ構築、ミドルウェア、例外ハンドラー、ルーター登録を担当する。 schemas/ はPydanticのリクエストとレスポンスモデルを担当する。 dependencies.py はデータベース、認証、ページネーション、リクエストスコープの依存関係を担当する。 services/ または crud/ はビジネスと永続化操作を担当する。 tests/ は本番リソースを開かずに依存関係をオーバーライドする。 小さなルーターと明示的なresponsemodel宣言を優先します。レスポンススキーマには生のORMオブジェクト、シークレット、フレームワークのグローバル変数を含めないでください。 テストとワーカーが制御された設定でアプリをビルドできるように、ファクトリーを使用します。 allowcredentials=Trueと一緒にalloworigins=[""]を使用しないでください; ブラウザはその組み合わせを拒否し、Starletteは認証情報付きリクエストに対してそれを禁止します。 リクエスト、更新、レスポンスのモデルを分離します。 レスポンスモデルにはパスワードハッシュ、アクセストークン、リフレッシュトークン、内部認可状態を含めてはなりません。 リクエストスコープのリソースには依存性注入を使用します。 ルートハンドラー内でインラインにセッション、クライアント、または認証情報を作成しないでください。 I/Oを実行する場合はルートハンドラーを非同期にし、その内部で非同期ライブラリを使用します。 非同期ハンドラーからの外部HTTP呼び出しにはhttpx.AsyncClientを使用してください。非同期ルートでrequestsを呼び出さないでください。 ドメイン例外を一元化し、レスポンスの形状を安定させます。 カスタムOpenAPI呼び出し可能オブジェクトをapp.openapiに割り当ててください; 関数を一度だけ呼び出さないでください。 ルートハンドラーが決して参照しない内部ヘルパーではなく、Dependsで使用される依存関係をオーバーライドします。 argon2-cffi、bcrypt、または現在のpasslib互換ハッシャーでパスワードをハッシュする。
这里只展示节选,请以完整原文和当前要求为准。
- 来源仓库
- affaan-m/ECC
- 源文件
- docs/ja-JP/skills/fastapi-patterns/SKILL.md
- 固定版本
- d2ef2680594f9a17526a6e1a2e18b3d242c5d17b
准备条件
- 本条仅收录原作者的技能元数据;请阅读完整说明,确认依赖、许可与使用条件。
第一件可以尝试的小事
先阅读原作者说明,再决定是否在自己的 AI 工具中使用。
对应 AI 工具说明
作者有说明不等于本站实机验证。没有证据时,不自动标为兼容、安全或免费。
来源与内容状态
本条为自动发现的元数据,尚未完成人工文档核查;适用性与运行结果待核查。
原作者:affaan-m/ECC · 原作者仓库元数据。文档核查:未核查。最近来源检查:2026-11-09T14:01:49.223Z。
分类由名称、说明与路径规则生成,分类不代表已核实适配。
许可与权利归属
MIT。第三方内容及版权归原作者,使用条件以原文为准。
许可原文 ↗本站没有因同步、复制或用户自报成功而将资源标为运行验证通过。
限制与注意事项
- 元数据收录不代表本站已经安装、适配、实测或进行安全审查。