inflearn logo
知識共有
inflearn logo

FastAPIバックエンド開発完全攻略 - Pydantic v2、OAuth 2.0、SQLAlchemy

この講義は、FastAPIでバックエンドAPIを設計・実装する全41回、約22時間のコースです。 FastAPIは簡単に始められるフレームワークです。ドキュメントに目を通して数行書けば、APIが動き始めます。問題はその後です。リクエストがどこを経由して関数のパラメータに到達するのか、依存関係がいつ解放されるのか、例外がどの地点で捕捉されるのかを理解していないと、少し複雑になっただけで行き詰まります。この講義では、その内部動作を追うことに時間をかけます。 まずは開発環境から始めます。condaとvenvの2つの方法を扱い、VS Code REST ClientとSwagger UIでリクエストを送信しながら、HTTPリクエストとレスポンスの構造を身につけます。続いて、パスパラメータとクエリパラメータの違いを扱い、なぜ422エラーが発生するのかを型チェックと関連付けて説明します。 Pydanticは、この講義で最も深く掘り下げる分野です。スカラー型から日付・UUID・Decimal、EnumとLiteralまで確認した後、BaseModelへ進みます。Field()で条件を設定し、@field_validatorで単一・複数フィールドを検証し、@model_validatorのbeforeとafterの動作の違いまで扱います。Pydantic v2を基準としているため、最新の構文をそのまま実務に活用できます。 中盤では、構造化と依存性注入を扱います。APIRouterによるファイル分割、関数やクラスを依存関係として利用する方法、Sub-dependency、デコレータレベルの依存関係を順番に学びます。ここではyieldに4回分を割り当てています。ジェネレータの動作原理、raiseによって呼び出しスタックをさかのぼりながら例外を伝える過程、throw()によってyieldの地点に例外を注入する方法まで掘り下げます。yieldを含む依存関係でリソースの解放がどのように行われるのかを理解すれば、DBセッションの管理も明確になります。 後半では、認証とデータベースを扱います。OAuth 2.0の概念と4つのGrant Typeを整理し、JWTの発行・検証、OAuth2PasswordBearerの内部実行ロジック、Security()とscopesを利用した権限制御を実装します。続いて、Google・Kakao・Naverのクライアントを自分で設定し、Authorization Code Grant方式でソーシャルログインを組み込みます。最後にSQLAlchemy ORMを扱い、create_engineのURL構造、DialectとDBAPIの役割、トランザクション、セッション、モデルとテーブルの作成まで進みます。 "動くコード"を超えて、"なぜそのように動くのか"を知りたい方に適した講義です。

1名 が受講中です。

難易度 初級

受講期間 無制限

FastAPI
FastAPI
Python
Python
REST API
REST API
pydantic
pydantic
SQLAlchemy
SQLAlchemy
FastAPI
FastAPI
Python
Python
REST API
REST API
pydantic
pydantic
SQLAlchemy
SQLAlchemy

受講後に得られること

  • 開発環境の構築 - condaとvenvで仮想環境を作成し、FastAPIとuvicornをインストールして実行できる。

  • Pydantic v2の型とバリデーション - スカラー・日付・UUID・Enumなどさまざまな型を活用し、BaseModelでデータを検証・変換できる。

  • レスポンスの検証とルーティングの構造化 - response_modelでレスポンスを検証し、APIRouterでpath operationをファイル単位で管理できる。

  • yield依存性と例外処理 - ジェネレーターの動作原理を理解し、yieldを含む依存性でリソースのクリーンアップと例外処理を実装できる。

  • OAuth 2.0と権限制御 - OAuth 2.0のGrant Typeを区別し、Security()とscopesで細かな権限制御を実装できる。

  • SQLAlchemy ORMの活用 - create_engineとセッションを設定し、モデルを定義してテーブルを作成し、トランザクションを制御できる。

  • Path Operationとパラメータ処理 - パスパラメータとクエリパラメータの違いを理解し、必須・任意・繰り返しパラメータを実装できる。

  • FieldとValidatorの活用 - Field()で条件を指定し、@field_validatorや@model_validatorで細かな検証ロジックを実装できる。

  • 依存性注入設計 - 関数・クラスを依存性として使用し、サブ依存性とデコレーターレベルの依存性によって共通ロジックを再利用できる。

  • JWT認証の実装 - JWTの構造を理解し、トークンの発行・検証とDepends()を利用したユーザー認証を実装できる。

  • ソーシャルログイン連携 - Google・Kakao・Naverクライアントを設定し、Authorization Code Grant方式でソーシャルログインを実装できる。

Pythonでバックエンド開発を始めたいですか? あるいはFastAPIを使っているものの、データ検証、依存性注入、認証処理、データベース連携を難しく感じていますか?

この講義では、FastAPIを活用したREST API開発の基礎から、実務に必要なコア技術までを段階的に学習します。

開発環境の設定から、パスおよびクエリパラメータの処理、Pydantic v2を利用したデータ検証、APIRouterを活用したプロジェクトの構造化、依存性注入と例外処理まで、段階的に身につけていきます。また、JWTとOAuth 2.0を利用した認証および権限管理、Google・カカオ・ネイバーのソーシャルログイン、SQLAlchemy ORMによるデータベース連携まで実践します。

単にコードを書き写すだけでなく、リクエストデータが処理される過程や、依存関係の実行および後処理の仕組み、例外が伝達される方法まで理解することが、この講義の目標です。

この講義を通じて、次のようなスキルを身につけられます。

  • FastAPIを利用したREST APIの設計および実装

  • Pydanticを活用したデータ検証と変換

  • 保守しやすいAPIプロジェクト構造の設計

  • 依存性注入と例外処理の実装

  • JWT認証およびOAuth 2.0ベースの権限管理

  • ソーシャルログイン連携

  • SQLAlchemyを用いたデータベースモデリングとトランザクション管理

これらの技術は、Webサービス開発、バックエンドシステム構築、AIモデルAPIの提供、データサービス開発、およびさまざまなPythonベースのアプリケーションに活用できます。

Pythonの基本文法を知っていれば、バックエンド開発の経験がなくても学習を始められます。約22時間の講義と実習資料を通じて、基礎から主要な概念まで体系的に身につけていきましょう。

FastAPIの動作原理を理解し、実際のプロジェクトに適用できるバックエンド開発スキルを身につけることが、この講義の目標です。

学習内容

主要キーワード (Core Keywords)

この講義では、FastAPIを活用したバックエンド開発の主要な概念と実践的な技術を段階的に学習します。

1. FastAPIとREST APIの開発

  • FastAPIおよびUvicornのインストールと開発環境の構築

  • パスオペレーションとHTTPリクエスト処理

  • パスパラメータとクエリパラメータの活用

  • REST APIの設計およびレスポンス処理

2. Pydantic v2とデータ検証

  • BaseModelを利用したデータモデルの定義

  • Pythonの型ヒントとデータ型変換

  • Field()を使用した入力値の条件設定

  • field_validatorとmodel_validatorを用いたデータ検証

  • response_modelを利用したレスポンスデータの検証

3. APIの構造化と依存性注入

  • APIRouterを利用したルーティングの構造化

  • 関数およびクラスベースの依存性注入

  • サブ依存関係と共通ロジックの再利用

  • yieldを利用したリソース管理

  • 例外の伝播と例外処理の原理

4. JWT認証とOAuth 2.0

  • JWTトークンの構造と発行および検証

  • BearerトークンとOAuth2PasswordBearerの活用

  • ユーザー認証および権限管理

  • Security()とscopesを利用したアクセス制御

  • OAuth 2.0 Grant Typeの理解

5. ソーシャルログインの実装

  • Google、カカオ、NAVER開発者クライアント設定

  • Authorization Code Grant方式の理解

  • 外部認証サービスを利用したログイン連携

6. SQLAlchemy ORMとデータベース

  • create_engineを利用したデータベース接続

  • DialectとDBAPIの役割を理解する

  • ORMモデルの定義とテーブルの作成

  • データベースセッション管理

  • SQLの実行とトランザクション制御

これらの主要キーワードをもとに、Webバックエンド開発、REST APIの構築、ユーザー認証および権限管理、データベース連携、AI・機械学習モデルのAPIサービス化など、さまざまな分野に応用できる技術を身につけます。

この講座はPythonの基本文法を理解している学習者を対象としており、基礎的なAPIの作成から実務に必要なバックエンドの主要機能まで体系的に扱います。

受講前に

前提知識および受講案内 (Prerequisites & Notices)

1. 事前知識および準備事項

この講義は、Pythonの基本文法を理解している学習者を対象としています。バックエンド開発の経験は必要ありませんが、関数、クラス、デコレーターなど、Pythonの基本概念を理解していると学習に役立ちます。

  • Pythonの基本構文に関する理解

  • 型ヒントに関する基礎知識(推奨)

  • VS Codeまたはお好みのコードエディター

  • Windows環境およびPowerShellの使用を推奨します

  • HTTPとREST APIに関する基礎知識(講義で関連する概念を説明します)

  • SQLのSELECT、INSERT文に関する基礎知識

  • Google、カカオ、NAVERの開発者アカウント(ソーシャルログインの実習に必要)

2. 講義動画および学習資料

本講義は約22時間分の動画講義で構成されており、各回のPDF資料とPython実習コード(.py、.ipynb、.http)を提供します。

効果的に学習するため、次の方法をおすすめします。

  • 講義を視聴しながら、実際にコードを書いて実行してみてください。

  • 各セクションが終わるたびに、学んだ内容を小さなAPIプロジェクトに適用してみてください。

  • Swagger UIまたはREST Clientを使用して、リクエストとレスポンスをテストしてみてください。

  • エラーが発生したらエラーメッセージを確認し、原因を分析する習慣を身につけましょう。

  • JWT認証、依存性注入、データベース連携などの重要な概念は、繰り返し実習してください。

動画と音声の具体的な技術仕様は別途明記されていません。スムーズに学習するため、安定したインターネット接続とコードを実行できる開発環境を準備してください。

3. 質問および学習サポート

学習中に理解しにくい概念や実習中のエラーが発生した場合は、講義プラットフォームが提供する質問・ディスカッション機能を利用して質問できます。質問する際は、エラーメッセージ、関連するコード、予想した結果と実際の結果を併せて記載すると、問題をより明確に把握するのに役立ちます。

4. 講義の更新に関するご案内

FastAPI、Pydantic、SQLAlchemyなどの関連技術は継続的に発展する可能性があります。講義で明記されているバージョンと最新バージョンの間で、構文や動作に違いが生じる可能性があるため、公式ドキュメントも併せて参照することをおすすめします。

講義の今後のアップデート予定は、別途確定していません。最新の機能や変更点を学習する際は、使用するライブラリのバージョンと互換性を確認してください。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Pythonは扱えるが、バックエンド開発は初めての開発者

  • FlaskやDjangoを使っていて、FastAPIに移行しようとしている方

  • ドキュメントを見てコードは書けるものの、内部の動作が不明確で歯がゆいFastAPIユーザー

  • カカオ・NAVERのソーシャルログインを自前で実装する必要がある韓国国内サービスの開発者

  • JWTとOAuth 2.0を概念から実装まで整理したい方

  • AIモデルをAPIでサービングするためにバックエンドの基礎知識が必要なデータ・MLエンジニア

  • ポートフォリオに載せるREST APIプロジェクトが必要な就職活動中の人

前提知識、
必要でしょうか?

  • Pythonの基本構文(関数、クラス、デコレーターへの理解)

  • 型ヒントに触れた経験があれば、スムーズに進められます。

  • Windows環境を基準に進めます(PowerShellの設定を扱います)

  • VS Codeまたは使用中のコードエディター

  • HTTPとRESTの基礎概念(講義で改めて説明します)

  • Google・カカオ・NAVER開発者アカウント(ソーシャルログインの実習に必要で、すべて無料です)

  • データベースの基礎知識(SELECT、INSERT程度で十分です)

  • 各回の講義資料PDFと実習コード(.py、.ipynb、.http)が提供されます

こんにちは
it learnerです。

IT分野ごとの実務専門家と専門講師が担当するIT教育課程で、プログラミング、ソフトウェア開発、データ分析、人工知能、ネットワークおよび情報技術など、さまざまな分野の実務中心の講義を提供します。最新のIT技術と業界動向を反映した教育コンテンツを通じて、学習者が理論的知識と実務能力を同時に身につけ、急速に変化するIT環境に適応できるよう支援します。

もっと見る

カリキュラム

全体

41件 ∙ (21時間 52分)

講座資料:

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価が集まっていない講座です。
ぜひ最初のレビューをお寄せください。

it learnerの他の講座

知識共有者の他の講座はこちら

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥6,982

13%

¥8,056