1. HOME
  2. ブログ
  3. IT技術
  4. 【最終回】FastAPIチュートリアル: toDoアプリを作ってみよう【WebAPI編】

【最終回】FastAPIチュートリアル: toDoアプリを作ってみよう【WebAPI編】

FastAPIチュートリアル: toDoアプリを作ってみよう~最終回~

前回の記事「【第6回】FastAPIチュートリアル: toDoアプリを作ってみよう【予定の追加・削除編】」の続きです。

今回も、toDo アプリを作る過程で、FastAPI の使い方を学んでいきましょう!

第1回はこちら

「WebAPI」化を目指します!

こちらの連載は、今回の第7回をもって「最終回」となります。

最終回では、FastAPI の本命と言っても良い「WebAPI」化を目指します。

第1回でも言ったように、FastAPI は「対ユーザ」のアプリケーションは実は不向きで、本命は「対プログラム」の WebAPI を作成するためのライブラリです。

つまり、本連載で作成する toDoアプリケーションは、GUI・CUI ( CLI ) 両方で機能する toDoアプリにしていきます。

前者はもう実装終わりましたので、最終回は後者を実装していきたいと思います!

ログインユーザのタスクを全てJSON形式で取得する

まずは、最も単純な API です。

API はそもそも、他のプログラムから呼び出されることが前提ですので、扱いやすい形でレスポンスする必要があります。

よく扱われるのは、JSON (JavaScript Object Notation) 形式です。

ルーティング

ルーティングは、ずっとやってきたことと同じです。

コントローラを書く

こちらも、さほど難しくはないと思います。

やることは、GUIでやってきたこととほとんど同じで、 return の仕方が異なるだけです。

実際に確認してみる

FastAPIでは、APIのレスポンスを確認するのは簡単です。

これが、FastAPI の最大のメリットかもしれません。

サーバを立ち上げたら、http://127.0.0.1:8000/docs にアクセスしましょう。

すると「今まで書いてきた URL 」と「そのコントローラ」がずらっと確認できます。

toDoアプリのドキュメントが自動生成される

その中から今作成した、「get」を探しましょう。

そして、「Try out」から「Execute」をすると、

JSON形式のタスクを取得できる



うまく動作していそうですね。

実際は、ベーシック認証を挟むので、コンソールから取得する場合は

のようにユーザ名とパスワードが必要です。

ちなみに、引数の request: Request はなくても良いです。

POSTメソッドを伴うAPI

次に、コマンドラインからタスクを追加し、新しく追加したタスクをJSONで返すようなAPIを作成します。

ここでは、POSTメソッドとしてデータが送信された時を考えます。

したがって、ルーティングは以下のようになります。(関数名は適当に決めます)

コントローラを書く

コントローラを書いていきますが、GUI と同じような POST メソッドの受け取りかたは使わず、ドキュメントに反映されるように FastAPI の Form() 関数を使います。

まずは、新たにインポートしてください。

Form()を使ったPOSTメソッドの受け取りかたは、以下のように書きます。

POSTメソッドを受け取るときは、 async を忘れずに!

動作確認

先ほどと同じように、ドキュメントを見てみましょう!

フォームをドキュメントから指定できるようになった

このようにドキュメントに必要なデータフォームが表示されるようになりました。

では、実際に動かしてみましょう!

POSTメソッドがしっかり動作していそうです!



うまく動作していそうです!

これで外部からタスクの追加ができるようになり、WebAPIとして動作するようになりました。

他にも、API化すべき機能がありますが、どれも同じような解説になるので、ここまでにしておきたいと思います!

ReDocの確認

最後に、FastAPI で自動生成される ReDoc について確認の仕方を解説して連載を終わりにしたいと思います。

といっても簡単で、http://127.0.0.1:8000/redoc にアクセスするだけです。

ReDocの確認

このように静的なドキュメントが自動生成されます。

やはり、FastAPIは、「API 作成に強い API 」ということが分かりますね。

さいごに

これにて、「FastAPIチュートリアル: toDoアプリを作ってみよう」の連載は終了です!

本連載を通して、FastAPI の使い方や、Webアプリケーションの作り方を理解できたかと思います。

FastAPI は、まだ発展途上のライブラリですので、これからのアップデートに期待できそうです。

それでは、第7回にわたりご愛読していただきありがとうございました!

Responderはオススメ

他にも、Responder など様々なWebライブラリがありますので、ぜひ他のものも触れてみてください!

特に、Responderはオススメです!

本連載で作成したコード

本連載で作成したコードは、Githubにアップロードしてありますので、ご自由にお使い下さい!

書いた人はこんな人

広告メディア事業部
広告メディア事業部
「好きを仕事にするエンジニア集団」の(株)ライトコードです!

ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もり大歓迎!

また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
インターンや新卒採用も行っております。

以下よりご応募をお待ちしております!
https://rightcode.co.jp/recruit

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア