書籍概要

Python FastAPI本格入門

著者
発売日
更新日

概要

昨今,多くの企業が自社のWebサービスにGoogleやFacebookなどのソーシャルログインを採用するなど,他社のサービスを取り込むことの需要が増えています。しかし,他社のサービスを取り込む課題として,異なるサービス間でのデータの整合性を保ちつつ,柔軟かつ迅速に機能を提供することが必要となり,この課題解決の観点でFastAPIが注目されています。FastAPIはスキーマ駆動開発を通じてAPIの作成と管理が容易に行えるPythonのフレームワークです。本書は,FastAPIではじめてAPI開発を行う方を対象とした入門書です。1章~9章までで「API開発に必要な知識」「スキーマの定義方法」などFastAPIの基本的な内容を学べます。また,10章~11章,Appendixで実際にスキーマ駆動開発によりAPIを利用したサービスを作成するため,API開発の一連の流れを学べます。

こんな方におすすめ

  • FastAPIを用いて開発を行ってみたい人
  • API開発に興味がある人

サンプル

目次

第1章 FastAPIの概要

1-1 FastAPIとは? 

  • 1-1-1 フレームワークとは? 
  • 1-1-2 FastAPIの特徴 

1-2 開発環境の構築(Miniconda)

  • 1-2-1 AnacondaとMiniconda 
  • 1-2-2 Minicondaのインストール 
  • Column Minicondaってなんだ? 

1-3 開発環境の構築(仮想環境) 

  • 1-3-1 仮想環境とは?
  • 1-3-2 仮想環境の構築
  • 1-3-3 pipとcondaとは?

1-4 開発環境の構築(VSCode) 

  • 1-4-1 VSCodeのインストール 
  • 1-4-2 拡張機能の追加(Python他) 
  • 1-4-3 ハンズオン環境の作成 
  • Column いつ仮想環境を有効化・無効化するのか? 

第2章 FastAPIの基礎

2-1 WebAPIの基礎知識 

  • 2-1-1 APIとは? 
  • 2-1-2 WebAPIとは? 
  • 2-1-3 WebAPIプログラムの作成 
  • Column VSCodeで「Pythonインタープリタ」の変更 

2-2 FastAPIで「ハローワールド」の作成 

  • 2-2-1 必要なライブラリのインストール 
  • 2-2-2 はじめてのFastAPIプログラムの作成 

2-3 Swagger UIによるドキュメント生成 

  • 2-3-1 Swagger UIとは? 
  • 2-3-2 Swagger UIの役割

第3章 型ヒント(タイプヒント)

3-1 型ヒントとは? 

  • 3-1-1 型ヒントの基本 
  • 3-1-2 型ヒントの記述方法 
  • 3-1-3 型ヒントプログラムの作成 

3-2 型ヒントの使用方法(Optional型) 

  • 3-2-1 Optional型とは? 
  • 3-2-2 Optional型を使用するプログラムの作成 

3-3 型ヒントの使用方法(Annotated) 

  • 3-3-1 Annotatedとは? 
  • 3-3-2 Annotated型を使用するプログラムの作成 

3-4 「|(パイプ)演算子」とは? 

  • 3-4-1 「|(パイプ)演算子」とは? 
  • 3-4-2 「|(パイプ)演算子」を使用するプログラムの作成 
  • Column Optional型とパイプ演算子 

第4章 パラメータとレスポンスデータ

4-1 リクエスト処理(パスパラメータ) 

  • 4-1-1 パスパラメータの基本 
  • 4-1-2 FastAPIプログラム(パスパラメータ)の作成 
  • Column HTTPException 
  • 4-1-3 Swagger UIでの操作 

4-2 リクエスト処理(クエリパラメータ) 

  • 4-2-1 クエリパラメータの基本 
  • 4-2-2 FastAPIプログラム(クエリパラメータ)の作成 
  • 4-2-3 Swagger UIでの操作 

4-3 レスポンス処理(レスポンスデータ) 

  • 4-3-1 レスポンスデータの構造 
  • 4-3-2 イメージで振り返る 
  • 4-3-3 Pydanticとは? 

第5章 FastAPIでCRUD処理

5-1 RESTful APIとは? 

  • 5-1-1 RESTの4原則 

5-2 HTTPメソッドの特性 

  • 5-2-1 RESTとは? 
  • 5-2-2 安全性と冪等性(べきとうせい)とは? 
  • 5-2-3 GET,POST,PUT,DELETEとは? 
  • Column 本書の構成について 

5-3 CRUDアプリケーションの作成

  • 5-3-1  アプリケーションの作成 
  • Column response_model 
  • Column enumerate 
  • 5-3-2 Swagger UIでの操作 
  • 5-3-3 Pydantic再び 
  • 5-3-4 Swagger UIでの操作 
  • Column Field機能とAnnotated型 

第6章 同期処理と非同期処理

6-1 同期処理と非同期処理とは? 

  • 6-1-1 同期処理と非同期処理 
  • 6-1-2 Pythonでの非同期処理 
  • 6-1-3 「asyncio」を使用するプログラムの作成 
  • Column コルーチン 

6-2 FastAPIでの非同期処理 

  • 6-2-1 httpxのインストール 
  • 6-2-2 「httpx」を使用するプログラムの作成 

第7章 ルーティングの分割

7-1 APIRouterとは?

  • 7-1-1 APIRouterの概要
  • 7-1-2 プログラムの作成 

7-2 リファクタリング 

  • 7-2-1 リファクタリングの主な目的 
  • 7-2-2 プログラムの作成(リファクタリング) 
  • 7-2-3 FastAPIクラスとAPIRouterクラスの比較 

第8章 ORMの利用

8-1 ORMとは? 

  • 8-1-1 ORMの概要 
  • 8-1-2 SQLAlchemyとは? 
  • 8-1-3 SQLiteの使用方法 

8-2 SQLAlchemyを使用したアプリケーションの作成 

  • 8-2-1 プロジェクトの作成 
  • Column 「期限切れ」とは? 
  • Column モデルとは? 
  • Column DB接続を「コネクション」と「セッション」に分ける理由 
  • 8-2-2 動作確認の実施 
  • Column 生成AIを使用した学習方法のおすすめ

第9章 DIの利用

9-1 DIとは? 

  • 9-1-1 DIのイメージ 
  • 9-1-2 FastAPIでのDI 

9-2 DIを使用したアプリケーションの作成 

  • 9-2-1 プロジェクトの作成 
  • 9-2-2 動作確認の実施 

9-3 DI(依存性の注入)の深堀

  • 9-3-1 DIを取り巻く用語の整理 
  • 9-3-2 DIの使い所と気をつけること 

第10章 スキーマ駆動開発(フロントエンド)

10-1 スキーマ駆動開発 

  • 10-1-1 スキーマ 
  • 10-1-2 スキーマ駆動開発
  • Column スキーマ駆動開発の利点 

10-2 作成アプリケーションの概要 

  • 10-2-1 スキーマ駆動開発でのステップ 
  • 10-2-2 自動ドキュメント作成の実施 
  • Column 分類の重要性 

10-3 フロントエンドの作成 

  • 10-3-1 フロントエンド 
  • 10-3-2 Webページプレビュー拡張機能を追加 

第11章 スキーマ駆動開発(バックエンド)

11-1 モデルとDBアクセスの作成 

  • 11-1-1 モデルの決定 
  • 11-1-2 コードの記述 
  • Column 「yield」について 
  • 11-1-3 動作確認の実施 

11-2 CRUD処理の作成 

  • 11-2-1 非同期CRUD処理 
  • Column 朝活のすすめ 

11-3 リファクタリング 

  • 11-3-1 ルーティングの分割 
  • 11-3-2 リファクタリングの実施 

11-4 動作確認

  • 11-4-1 サーバー起動 
  • 11-4-2 動作確認の実施 
  • Column CORS(Cross-Origin Resource Sharing)とは? 

Appendix 今後の発展のために

A-1 複雑なスキーマの検討 

  • A-1-1 スキーマとクラス 
  • A-1-2 サンプルプログラムの作成

A-2 動作確認の実地 

  • A-2-1 サーバー起動

A-3 メモアプリのカスタマイズ

  • A-3-1 JSONデータの構造把握 
  • A-3-2 カスタマイズの手順 

A-4 サンプルファイルの使用方法 

  • A-4-1 サンプルファイルの使用

サポート

現在サポート情報はありません。

商品一覧