Flaskで外部APIと連携する方法!requestsライブラリの使い方を初心者向けに解説
生徒
「先生!Flaskでほかのサイトの情報を取り込むことってできますか?」
先生
「はい、できますよ。Pythonのrequestsというライブラリを使えば、外部のAPI(エーピーアイ)から情報を取得できます。」
生徒
「APIってなんですか?むずかしそうです…」
先生
「安心してください。APIは、インターネット上にある自動販売機のようなもので、URLを指定すると情報を取り出せる仕組みなんです。簡単な例で一緒に学んでいきましょう!」
1. FlaskとAPIってなに?超初心者向けに解説
Flask(フラスク)は、Python(パイソン)というプログラミング言語で、簡単にホームページやWebサービスを作るためのツールです。
API(エーピーアイ)は「Application Programming Interface(アプリケーション・プログラミング・インターフェース)」の略で、外のシステムやデータとやりとりできる入り口です。
たとえば「今日の天気を調べたい!」と思ったときに、気象庁などが公開しているAPIを使えば、パソコンでクリックしなくても天気の情報を自動で取り込めるのです。
2. requestsライブラリとは?やさしく説明
requests(リクエスツ)ライブラリは、Pythonでインターネット上の情報を取ってくるときに使う便利な道具です。
たとえば「お店のホームページからメニューを見たい!」というときに、ブラウザで開かずにプログラムでそのページの情報を取ることができます。
このrequestsライブラリは、インターネットと会話をするための電話のような役割をしてくれます。
3. Flaskで外部APIのデータを取得するサンプル
ここでは、「ダミーのユーザー情報を提供してくれる無料API(https://jsonplaceholder.typicode.com/users)」を使って、Flaskでそのデータを取得する方法を紹介します。
from flask import Flask, jsonify
import requests
app = Flask(__name__)
@app.route("/get-users")
def get_users():
response = requests.get("https://jsonplaceholder.typicode.com/users")
users = response.json() # 取得したデータをJSON形式で取り出す
return jsonify(users)
if __name__ == "__main__":
app.run(debug=True)
4. 実行結果の例
このプログラムを実行して「http://localhost:5000/get-users」にアクセスすると、以下のようなデータが表示されます。
[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz"
},
...
]
このように、APIを使ってたくさんのユーザー情報を一気に受け取ることができます。
5. JSON(ジェイソン)ってなに?初心者向けに解説
JSON(ジェイソン)は、インターネット上でよく使われる「データの形(フォーマット)」です。見た目はカッコ({})やカギカッコ("")を使っていて、メモ帳に書かれた辞書のようなものです。
たとえば:
{"name": "Taro", "age": 20}
これは「名前はTaro、年齢は20歳」という意味になります。
Flaskでは、このJSONをとても簡単に扱うことができます。
6. APIとURLの関係をわかりやすく説明
URL(ユーアールエル)は、インターネット上の住所のようなものです。APIはこの住所に行くことでデータを受け取れます。
「郵便局に行って住所を伝えたら荷物が届く」イメージです。requestsライブラリは、その荷物を取りに行く配達員の役割をします。
7. エラーが起きたときの対応方法
インターネットの接続がうまくいかない、URLが間違っているなどでエラーが出ることがあります。
そのときは、requests.get()で返されたstatus_codeを確認してみましょう。
response = requests.get("https://jsonplaceholder.typicode.com/users")
if response.status_code == 200:
users = response.json()
else:
users = {"error": "データを取得できませんでした"}
8. よく使うHTTPメソッドを紹介
APIとやりとりするときには、「GET」「POST」「PUT」「DELETE」といったHTTPメソッドを使います。今回はGET(ゲット)という方法を使っています。
- GET:データをもらう(今回の例)
- POST:データを送る
- PUT:データを更新する
- DELETE:データを削除する
初心者はまずGETから覚えるのがおすすめです。
9. APIの使い道をイメージしよう
APIを使うと、たとえばこんなことができます:
- 天気予報の情報を表示
- 郵便番号から住所を表示
- ニュースの最新記事を取得
- 音楽や動画のランキングを取得
つまり、自分でたくさんのデータを作らなくても、すでにある情報を取り込むことで便利なWebサービスを作ることができます。
まとめ
Flaskで外部APIと連携する方法を学んできましたが、あらためて振り返ってみると、単にコードを書くという作業ではなく、外の世界とつながる仕組みを理解することそのものがとても大切だと感じられます。とくに初心者にとっては、APIという言葉そのものが専門的でむずかしそうに聞こえますが、実際に手を動かしてみると、URLを指定して情報を受け取り、それを加工して表示するという流れは思ったよりシンプルだと気づけたはずです。今回の記事では、requestsライブラリを使ったデータ取得の基本、APIとURLの関係、JSON形式の扱い方などを並べて説明しながら、具体的な実行例を通して理解を深めました。 とくに、FlaskとAPIの連携は、現実のWebサービスで頻繁に求められる必須の技術です。天気予報の表示、地図検索、SNSデータの取得、ユーザー情報の外部システムとの同期など、外部APIを利用する場面は数えきれないほどあり、今回の学習内容はその第一歩になります。requestsライブラリを使えば、複雑な処理を意識せずにデータを取得でき、API側のサーバーが返してくれた情報をそのままFlaskアプリに組み込めるため、初心者でもスムーズに扱えます。これによって、自分のアプリが外部とつながり、ただの静的なページではなく、動きのある情報提供サービスへと成長していく実感が得られたのではないでしょうか。 また、今回紹介したサンプルコードでは、jsonplaceholderというサンプルAPIを利用しましたが、実際には国内外の企業やサービスが数多くのAPIを公開しています。たとえば天気、ニュース、音楽、地図、写真、翻訳など、さまざまな分野でAPIが使われています。これらのAPIを上手に組み合わせることで、より実用的なサービスへと発展させることができます。初心者の段階からAPIに触れておくことで、自然と「自分のサービスにどのデータを取り込むと便利だろう」と考えられるようになり、応用の幅も広がっていきます。 さらに重要なのは、API通信では必ず「成功か失敗か」を判断する必要があるという点です。status_codeの確認、エラーへの備え、通信ができなかった場合の表示などは、実践では必須の考え方です。もしインターネットの接続が不安定だったり、API側がメンテナンス中だった場合、適切なメッセージを返せるかどうかでサービスの印象は大きく変わります。そのため、エラー処理の基本を身につけることは、将来的に大きな力になります。 ここまでの内容を総合すると、Flaskとrequestsを組み合わせる方法を身につけることで、初心者でも外部サービスと連携した高度なWebアプリを作れるようになります。APIを使いこなすスキルは、一度理解するとあらゆる分野に活用できる汎用的な技術です。これから取り組むアプリ開発の中でも、外のデータを利用した機能を追加したいと思ったとき、今回の学びが大きな支えとなるでしょう。最後に、今回使ったコードをもとにした応用サンプルをもう一つ紹介し、理解を深めておきます。
追加のサンプルコード(天気APIを取得する例)
from flask import Flask, jsonify
import requests
app = Flask(__name__)
@app.route("/weather")
def weather():
url = "https://api.open-meteo.com/v1/forecast?latitude=35.0&longitude=135.0&hourly=temperature_2m"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
return jsonify(data)
else:
return jsonify({"error": "天気データを取得できませんでした"})
if __name__ == "__main__":
app.run(debug=True)
このように、URLを変更するだけで取得できるデータはまったく違うものになります。外部APIの仕組みに慣れてきたら、自分が必要とするデータを探し、公式ドキュメントを読んで取り込み方を理解するという流れに挑戦してみましょう。慣れてくると、APIドキュメントの読み方にも自然と慣れ、どの項目が必要なのか、どのURLを使えばよいのか判断できるようになります。これは開発者にとって非常に重要な力であり、継続して学ぶことでさらに視野が広がっていきます。
生徒
「先生、APIってむずかしそうだと思っていましたけど、実際に使ってみるとURLを指定するだけで必要な情報を取り出せる仕組みなんですね。」
先生
「そうだね。最初は難解に感じるけれど、基本の流れさえ理解すれば応用もしやすくて、とても便利な技術なんだよ。」
生徒
「requestsライブラリも使いやすいですし、Flaskと組み合わせたら本当にいろんなサービスが作れそうです。」
先生
「その通り。たとえばニュースを取り込んだり、地図情報を表示したり、天気のデータを取得したりと発展性が大きいのがAPIの魅力なんだ。」
生徒
「今回の学びで、自分のアプリが外とつながる感じがして、すごくワクワクしました!」
先生
「その感覚がとても大事だよ。これからいろいろなAPIを触って、もっと便利なアプリを作っていこうね。」