OpenAIのChatGPTのAPIやOpen Weather MapのAPIなど様々なAPIがあります。
この記事では、自分が作ったアプリケーションを外部公開したいという方向けにPythonでのAPIの作り方を紹介していきます。
この記事が向いている人
- PythonでのAPIの作り方が知りたい人
APIとは?
API(Application Programming Interface)は、異なるソフトウェアアプリケーション同士が情報をやり取りするための仕組みや規則のことを指します。
APIは、「プログラム」と「アプリケーション」や「ソフトウェア」を繋ぐ役割をします。
まぁインターフェイスですね。
例えば、TwitterのAPIを使用すると、Twitter(X)のデータ(ツイートやユーザー情報など)を取得したり、ツイートを投稿したりできます。
これにより、他のアプリケーションやウェブサイトとTwitterを統合することが可能です。
APIは、スマホのアプリなどを使っている分には実感できませんが、陰で快適なネットライフを支えているのです。
用意するもの
- Python3環境(pip)
- ブラウザ(確認用)
やってみよう
必要なものをインストール
pip install fastapi uvicorn
FastAPIとuvicornをインストールします。
FastAPI
Python3.6以降でAPIを構築するためのWebフレームワークです。
PythonでWebアプリ開発やAPI開発をする際に利用できます。
Pythonの人気なWebフレームワークとしてFlaskやDjangoなどがありますが、近年ではFastAPIが非常に使いやすい事から注目されています。
ドキュメントリンク→https://fastapi.tiangolo.com/ja/
uvicorn
クライアントからのリクエストとPHP、Python、Javaといったプログラミング言語の橋渡しとなる存在です。
uvicornは、Pythonで作られた特別なサーバーで、非常に速く、多くの接続を処理できます。
また、安全性にも気を配り、通信を暗号化することもできます。
非同期処理に対応しているため、多くのユーザーが同時にアクセスしても問題ありません。
FastAPIのような特定の種類のウェブアプリケーションを作る際に、uvicornは非常に便利なツールとして使われます。
プログラム
from fastapi import FastAPI
#インスタンス作成
app = FastAPI()
#デコレータ ルートURLに来た時にhello()(非同期関数 ほかの処理を止めない)を実行
@app.get("/")
async def hello():
return {"message" : "Hello,World"} #JSONで返却
これだけです。簡単ですね。
実行
cd <作成したpyファイルがあるパス>
uvicorn <ファイル名>:app --reload
<ファイル名>には、拡張子は付けずに実行してください。
2行目のコマンドは、<ファイル名>.pyのappを起動するという意味になります。
また、オプションの –reload は、ファイルに変更があった際に再起動するというものです。
結果
localhost:8000
にアクセスしてみましょう。
{"message":"Hello,World"}
が表示されると思います。
また、localhost:8000/docs
にアクセスすると、以下のように作成したメソッドが表示されます。
おわりに
今回は、主にAPIを作る際のライブラリなどについて解説しました。
筆者もこの記事で初めてAPIを作ってみたのですが、この簡単さには驚かされました。
今後は、POSTリクエストの処理や、DBとの連携などより詳しく解説する記事を書いていきたいと思います。
それでは!
コメント