-
大手の企業では、自社サービスのAPIを公開していることも多く、Webサービスで提供している機能やデータを呼び出したりしてサービスを利用する、ということも日常となってきているのではないでしょうか。
企業側がサービスを発展させていく為には、ユーザー数を増やして、関連サービスを充実させることで付加価値を高め、サービス利用時間を増やすことが重要である、という前提のもと、
情報を利活用しながら新たな機能開発するといった具合に、外部のシステムと連携させてサービスに機能を追加したり、付加価値を高めてサービスを発展させていくという視点が開発には必要になりつつあるように思います。
今回は、Web API を使ってみることで、API開発のイメージをクリアにするということを目標に、PythonでWeb APIを使ってみたいと思います。(最近流行しているOpen APIの話は、また次回以降のテーマとさせて頂きます)
まずはWeb APIとは何かということから確認していきます。
Contents
Web APIとは
● APIに送信する情報(基本的には各APIのドキュメントに細かく記載)
HTTP - どのHTTPメソッドを使用するか(主にPOSTかGETを利用)
header - ヘッダーにはデータの種類や、APIキーなどの認証情報を記載
body - JSON形式で送受信したい情報(データ)を記載
これらの操作は、実際にPythonに触れることで簡単に確認することができます。ここでは実際にAPIを叩いて、動作を確認していきたいと思います。まずは今回のテーマである
Fast APIの特徴
必要なライブラリのインストール
「uvicornとは非同期対応のPython用のWebサーバを提供するものと捉えてください。
※Pythonインストール時に標準で入っているパッケージ以外をインストールする場合、
FastAPIを起動してみる
以下の公式サイトを開きます。
https://fastapi.tiangolo.com/ja/
ドキュメントにも記載あるように、VSCodeでFast APIを起動させる為のコードを記載します。
「main.py」ファイル
簡単にソースの説明をしますと
appのインスタンスを作成し、@から始まる、「@app.get(“/”)」はデコレーターと呼ばれる部分で、
直下に配置した関数から、何かしらの値を受け取り、処理を行います。(デコレーターと下の部分が関連付いています)
FastAPIはAPI構築のフレームワークですが、APIをテストするためにはローカルウェブサーバーが必要になります。開発に便利な選択肢として、Uvicornがおすすめです
先ほどインストールした「uvicorn」を利用してサーバーを起動します
>uvicorn main:app –reload
と表示されれば成功です。
APIドキュメント自動生成
FastAPIは、(SwaggerUIというツールを利用して)ドキュメント生成を自動で行ってくれるのですが、実はもうドキュメントは生成されています。
「/docs」を付けてURLを入力してください。
APIドキュメントがHTML形式で自動生成されていることがわかると思います。
SwaggerUIの詳細については、
公式ページ [ https://swagger.io/ ] からTools>Swagger UIにて確認することができます。
URLを入力してアクセスする際、パスの指定方法には、
パスパラメータとクエリパラメータ
パスパラメータは、一意なリソースを「/」区切りで表す場合に使用されます。
↓のmain.pyを「uvicorn main:app –reload」でWebサーバーを起動して確認してみます。
127.0.0.1:8000/Tokyo/165-0012
とURLを入力します。
と表示されれば、成功です。
一意なリソースを設定するパスパラメータに対し、
パスに
パスパラメータに記載の無い引数を宣言してあげると、それらはクエリパラメータとして認識されます。
127.0.0.1:8000/address/?city_name=’tokyo’&zip_code=’165-0001’
とURL入力します。
この「?」から始まる2つのパラメータがクエリパラメータとなります。
と表示されれば、成功です。
郵便番号を取得するAPIの例を確認
次は、HTTP通信でよく用いられるライブラリである「requests」を用いたWebデータ取得方法について、基本的な書き方を確認していきたいと思います。
サンプルとして郵便番号を取得するAPIの例を確認してみましょう。
127.0.0.1:8000/4600003
とURLを入力します。
と郵便番号の中身が表示されるのが確認できると思います。
今回の内容はいかがだったでしょうか。実際にPythonでWeb APIを操作してみることで、API開発のイメージを少し掴め、面白いなと感じて頂けた方もいらっしゃるかもしれません。今後、開発の中でWeb APIを使用して外部機能やデータの2次利用を考える機会も増えてくるのではないでしょうか。自分にできる範囲のものから、試してみようかなと思っていただければ幸いです。
以上となります。