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 」と「そのコントローラ」がずらっと確認できます。

fastapi_7-1

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

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

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

fastapi_7-2

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



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

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

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

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

POSTメソッドを伴うAPI

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

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

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

コントローラを書く

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

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

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

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

動作確認

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

fastapi_7-3

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

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

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

fastapi_7-4

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



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

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

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

ReDocの確認

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

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

fastapi_7-5

ReDocの確認

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

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

第7回:おわりに

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

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

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

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

Responderはオススメ

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

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

本連載で作成したコード

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

関連記事

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

ライトコードメディア編集部
ライトコードメディア編集部
「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。

関連記事