1
/
5

“FastAPI備忘録”、モダンで高性能なフレームワークを試してみました。

こんにちは、システムエンジニアの吉森です。

最近FastAPIの学習機会がありましたので、自身の備忘録として、またこれからFastAPIに触れようと考えている方々に向けて、その魅力を共有したいと思います。

チュートリアルを追えば、誰でも簡単にエンドポイントを作れてしまうので、今回は実装方法よりも、FastAPIの良さにフォーカスしたいと思います。(https://fastapi.tiangolo.com/ja/tutorial/)

まずFastAPIとは何か?からみていきたいと思います:

FastAPIについて簡単に説明すると、”型ヒントを駆使してAPIを構築するためのモダンで高性能なWebフレームワークです”、と公式ドキュメントで紹介されています。

  • 高速: 非同期処理をサポートするため、非常に高速な性能を実現します。
  • 型ヒントの利用: 型を用いることで、パラメータの型検証を自動化します。
  • 自動APIドキュメント生成: リアルタイムでAPIドキュメントを自動生成し、ブラウザから直接APIをテストできます。
  • 簡潔なコード: コードを書く量が少なく、早い開発を可能にします。

FastAPIは、シンプルながらも必要十分な機能を持ったフレームワークであり、Djangoのような大規模フレームワークの全機能を必要としない場合や、他のバックエンドシステムと分けて開発したい場合に最適です。

自動APIドキュメント生成

特に注目すべき機能の一つが、自動APIドキュメント生成です。

Swagger UIやReDocによるドキュメント自動生成機能は、開発者がAPIを迅速に開発し、メンテナンスする上で非常に有効です。さらに、POSTMANなどを使わずに、UIから直接エンドポイントをテストできる点も大きなメリットです。「Try it out」ボタンをクリックするだけで、APIを実際に試すことができます。たとえば、私が作成した簡単な位置情報取得のエンドポイントでは、実際にJSON形式でデータが返されることをUI上で確認できます。このドキュメントは自動生成されるため、uvicorn main:app --reloadという一行で、手軽にエンドポイントをテストすることが可能です。

  • “Try it out”を押す。

  • 実際にAPIを試す。

  • 以上の画像のように実際にJSONで値が帰ってきているのがわかります。このドキュメントは自動生成されるので、uvicorn main:app --reload の一行で、チャチャっと開発できてしまいます。

型ヒントの利用とバリデーション

また、型ヒントの利用とバリデーションについても触れておきたい点です。Pythonは動的型付け言語であるため、従来は変数の型をあまり意識せずにコーディングされていた方も多いでしょう。しかしFastAPIでは、リクエストやレスポンスにおいて型を定義し、バリデーションを行うことができます。位置情報を取得するAPIの例では、型ヒントにバリデーションを加えることで、入力データを制限し、10文字を超える入力が自動的に拒否されるようになっています。

def geocode(address: str = Query(..., max_length=10)):

このように、型ヒントとバリデーションを組み合わせることで、FastAPIは入力データの精度を高め、エラーの可能性を減少させることができます。この機能は、開発の迅速化だけでなく、アプリケーションの信頼性と安全性の向上にも寄与します。FastAPIを用いることで、型ヒントを利用した明確なコード記述と強力なバリデーション機能を活かし、効率的かつ堅牢なAPIの開発が可能になるのです。

  • 出力した位置情報をもとに、Leafletを用いて地図を表示させています。

今回はFastAPIについて、その魅力と私の学習体験を共有させていただきました。FastAPIの高速性、型ヒントの利用、自動APIドキュメント生成、そして簡潔なコードによる迅速な開発が可能な点を紹介しました。特に自動APIドキュメント生成機能は、開発者の生産性を大きく向上させ、APIのテストとメンテナンスを容易にします。また、型ヒントを活用したバリデーション機能により、より安全で信頼性の高いコードを書くことができるようになります。

FastAPIは、そのシンプルさと強力な機能により、多くの開発者に選ばれています。もしまだFastAPIを試していない方がいれば、是非この機会に挑戦してみてください。公式ドキュメントも非常に充実しており、初学者から上級者まで幅広くサポートしています。

最後に、このブログがFastAPIに興味を持つきっかけになれば幸いです。そして、開発の効率化と品質の向上に貢献できることを願っています。ありがとうございました。

株式会社キュクノスでは一緒に働く仲間を募集しています
1 いいね!
1 いいね!
同じタグの記事
今週のランキング
株式会社キュクノスからお誘い
この話題に共感したら、メンバーと話してみませんか?