【Python】FastAPIを使って、自分が作ったプログラムをAPI化しよう ~入門編~
こんにちは。
前回まではChatGPTを使ったツールの紹介をしました。
今回からは、自分が作ったプログラムを更に効率よく使う方法論として、API化について紹介していこうと思います。
自分が作ったプログラムは自分だけでなく誰かの役に立つと嬉しいですよね。
特に様々な開発者同士やツール同士で連携できると、もっとよりよりツールやシステムが構築できると思いませんか?
「でもそんな複雑で難しそうなこと・・・自分には無理。。」
「API化って何?なんだか面倒くさそう。。」
そんな皆さんに朗報です!FastAPIを使ってみましょう!
最近私も仕事でFastAPIを使うことがあり、それなりに触ってみました。
感想として非常に簡単に実装ができ、実用性にも長けると判断したので、今回取り上げてみました。
というわけで今日は以下のような内容をまずは紹介していきます。
それではよろしくお願いします。
APIとは?
APIとはApplication Programming Interfaceの略で、プログラム等のデータを外部からアクセスできるようにしたものを指します。
具体的には、皆さんがWEB等で使うURL(https://~のやつ)を使って、例えば社内ネットワークでいえば、他のパソコンで立ち上がっているプログラムからデータを取得することができたりします。
当然データをパソコン内で処理した形で取得することもできるので、冒頭で紹介した皆さんが作成したプログラムを他の誰かが簡単に使うことができるようになるということです。
なぜAPI化が必要?
例えば社内での開発をイメージしてみましょう。
Aさんが作ったプログラム、Bさんが使いたいとします。
するとBさんはAさんからコードを貰って、Bさんのプログラムに組み込んでパソコンで立ち上げる、そんな流れが考えられますね。
しかしこれがCさんDさんと続くとどうでしょう。
同じプログラムなのに、みんながそれを毎回自分のパソコンに取り込むのは非効率ですよね。
またBさんがAさんのプログラムを知らない場合、Aさんと同じものを作ってしまう可能性もありますよね。
これはいわゆる「車輪の再発明」と同じで、そんなことするBさんの工数はもったいないですよね。
そういうわけで、API化は開発を効率よく行うためにも必要というわけです。
FastAPIって?
APIの必要性を理解したところで、「じゃあどうやればいいのか」という疑問にあたります。
そこでおすすめしたいのが、「FastAPI」です。
FastAPIは最近Python開発でも人気が出てきているWEBフレームワークです。
fastapi.tiangolo.com
特徴として、とても高速に動かすことができ、コードも簡単にかけます。
以前紹介したStreamlitもWEBフレームワークですが、FastAPIはUI機能はありません。
その代わりにとても軽量で自由にWEBアプリの機能を実装することができます。
言葉で説明するより、やはり実際に動かしてみましょう。
実際に動かしてみよう!
まずは自身のPython環境(仮想環境)にfastapiとuvicornをインストールしましょう。
pip install fastapi uvicorn
インストールが完了したら、以下のコードを作成しましょう。
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"}
作成したら、以下のコマンドを入力します。
uvicorn main:app --reload
実行が成功したら、以下のようなメッセージが表示されます。
後はブラウザでhttp://127.0.0.1:8000にアクセスすると、ブラウザに「{"message": "Hello World"}」と表示されればOKです。
これがFastAPIにおける、いわゆる「ハローワールド」になります。