Skip to content
Twitter
edu-IT Practical Labo
【名古屋】
edu-IT Practical Laboedu-IT Practical Labo
  • Home
  • Blog
  • Services
    • Programming Typing
    • Basic WEB-TECH Lesson
    • IT-SKILL Training
  • Contact
 
  • Home
  • Blog
  • Services
    • Programming Typing
    • Basic WEB-TECH Lesson
    • IT-SKILL Training
  • Contact

Web APIをPythonで使ってみる~Fast APIの基礎

You are here:
  1. Home
  2. edu-IT
  3. Web A…
9月252023
edu-ITPython
    大手の企業では、自社サービスのAPIを公開していることも多く、Webサービスで提供している機能やデータを呼び出したりしてサービスを利用する、ということも日常となってきているのではないでしょうか。

     
    企業側がサービスを発展させていく為には、ユーザー数を増やして、関連サービスを充実させることで付加価値を高め、サービス利用時間を増やすことが重要である、という前提のもと、
     
    情報を利活用しながら新たな機能開発するといった具合に、外部のシステムと連携させてサービスに機能を追加したり、付加価値を高めてサービスを発展させていくという視点が開発には必要になりつつあるように思います。
     
    今回は、Web API を使ってみることで、API開発のイメージをクリアにするということを目標に、PythonでWeb APIを使ってみたいと思います。(最近流行しているOpen APIの話は、また次回以降のテーマとさせて頂きます)
     
     まずはWeb APIとは何かということから確認していきます。
     

    Contents

    • 1 Web APIとは
    • 2 Fast APIの特徴
    • 3 必要なライブラリのインストール
    • 4 FastAPIを起動してみる
    • 5 APIドキュメント自動生成
    • 6 パスパラメータとクエリパラメータ
    • 7 郵便番号を取得するAPIの例を確認

    Web APIとは


     

    ● APIに送信する情報(基本的には各APIのドキュメントに細かく記載)

    HTTP  - どのHTTPメソッドを使用するか(主にPOSTかGETを利用)
    header - ヘッダーにはデータの種類や、APIキーなどの認証情報を記載
    body - JSON形式で送受信したい情報(データ)を記載

    これらの操作は、実際にPythonに触れることで簡単に確認することができます。ここでは実際にAPIを叩いて、動作を確認していきたいと思います。まずは今回のテーマである「Fast API」について確認していきましょう。

    Fast APIの特徴



     

     

    必要なライブラリのインストール

    pipというPythonのパッケージ管理ツールを使って、「fastapi」と「uvicorn」をインストールします。
    「uvicornとは非同期対応のPython用のWebサーバを提供するものと捉えてください。

    ※Pythonインストール時に標準で入っているパッケージ以外をインストールする場合、
    「pip3 install パッケージ名」のコマンドで、インストールをします。

     

     

    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を入力します。

    と表示されれば、成功です。



     

    一意なリソースを設定するパスパラメータに対し、クエリパラメーターは、省略可能で、
    パスに「?param=値」の形式でパラメーターの値を設定
    します。
     
    パスパラメータに記載の無い引数を宣言してあげると、それらはクエリパラメータとして認識されます。


     

    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次利用を考える機会も増えてくるのではないでしょうか。自分にできる範囲のものから、試してみようかなと思っていただければ幸いです。

    以上となります。

Category: edu-IT, PythonBy semi3del2023年9月25日Leave a comment
Share this post
Share with Google+Share with FacebookShare with Twitter

Author: semi3del

Post navigation

PreviousPrevious post:GitHub Actions入門~Cloud9でGitHub ActionsのHelloWorldを実行してみようNextNext post:FigmaからReactのコード生成するプラグインを使ってUIコンポーネントを作成してみよう

Related Posts

CodeSandboxでReactのTodoリストを作成してみよう
2025年3月31日
Pythonライブラリ「Scrapy」でスクレイピング~Webサイトからデータを取得してみよう
2025年1月27日
はじめてのLambda~関数のサンプルを作ってみよう
2024年9月18日
GitHub Actions入門~Cloud9でGitHub ActionsのHelloWorldを実行してみよう
2023年11月28日
FigmaからReactのコード生成するプラグインを使ってUIコンポーネントを作成してみよう
2023年7月4日
CodeSandboxでReactのUIコンポーネントを作成してみよう
2023年5月10日

コメントを残す コメントをキャンセル

Your email address will not be published. Required fields are marked *

Post comment

最近の投稿
  • CodeSandboxでReactのTodoリストを作成してみよう
  • Pythonライブラリ「Scrapy」でスクレイピング~Webサイトからデータを取得してみよう
  • CodeSandboxでReactのフォーム部品を操作してみよう
  • はじめてのLambda~関数のサンプルを作ってみよう
  • Canva入門~テンプレートでプレゼン資料を作成してみよう
アーカイブ
  • 2025年3月
  • 2025年1月
  • 2024年11月
  • 2024年9月
  • 2024年8月
  • 2024年6月
  • 2024年4月
  • 2024年1月
  • 2023年11月
  • 2023年9月
  • 2023年7月
  • 2023年5月
  • 2023年3月
  • 2023年1月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年6月
  • 2022年5月
  • 2022年3月
  • 2022年1月
  • 2021年11月
  • 2021年9月
  • 2021年7月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年1月
  • 2020年11月
  • 2020年9月
  • 2020年6月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2017年7月