Flask-RESTfulでシンプルなAPIを作る手順まとめ!初心者向けの解説
生徒
「PythonでAPIって作れるんですか?」
先生
「はい、PythonのFlaskというフレームワークを使えば、簡単にWeb APIを作ることができますよ。」
生徒
「でも難しそうです…。プログラミング初心者でもできますか?」
先生
「もちろんです!今日は、Flaskの拡張機能『Flask-RESTful』を使って、シンプルなAPIを作る手順をわかりやすく説明しますね。」
1. APIとは何かを理解しよう
API(エーピーアイ)とは、「アプリケーション・プログラミング・インターフェース」の略です。簡単にいうと、パソコンやスマホのアプリ同士が「データをやり取りするための窓口」のようなものです。
たとえば、天気予報アプリがインターネットから天気情報を取得して表示するのは、天気情報のAPIを使っているからです。
2. Flask-RESTfulとは?
Flask-RESTful(フラスク・レストフル)は、PythonのWebフレームワーク「Flask」に機能を追加して、REST形式のAPIを簡単に作れるようにする便利な拡張機能です。
REST(レスト)とは、インターネット上でデータのやり取りをするための決まりごとのようなものです。Flask-RESTfulは、このRESTの仕組みに合わせてAPIを作るのを助けてくれます。
3. 環境を準備しよう(インストール手順)
まずは、FlaskとFlask-RESTfulをパソコンにインストールしましょう。以下のコマンドをターミナル(黒い画面)で入力します。
pip install Flask
pip install Flask-RESTful
「pip(ピップ)」は、Pythonの部品をインストールするための道具です。
4. シンプルなAPIを作ってみよう
それでは、実際にAPIを作ってみましょう。以下のコードは、「こんにちは」と返すだけのとてもシンプルなAPIです。
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class Hello(Resource):
def get(self):
return {"message": "こんにちは!"}
api.add_resource(Hello, "/")
if __name__ == "__main__":
app.run(debug=True)
このプログラムを保存して実行すると、http://127.0.0.1:5000/ にアクセスしたときに、次のような結果が表示されます。
{
"message": "こんにちは!"
}
5. コードの中身をわかりやすく解説
from flask import Flask:Flaskというツールを使えるようにします。
from flask_restful import Resource, Api:Flask-RESTfulの部品を読み込みます。
class Hello(Resource)::Helloという名前のクラスを作っています。「クラス」は部品のようなもので、Resourceを元に作ります。
def get(self)::インターネットで「GET」という方法でアクセスされたときに、この中の処理が実行されます。
return {"message": "こんにちは!"}:APIの返事として、文字を返しています。
api.add_resource(Hello, "/"):このHelloクラスを、URL「/」(トップページ)に登録しています。
app.run(debug=True):この命令で、APIが動き始めます。「debug=True」にしておくと、エラーがあったときに詳しく表示されるので便利です。
6. APIを使うと何が便利?
APIがあると、他のアプリやサービスと情報を簡単にやりとりできるようになります。たとえば、スマートフォンアプリとパソコンで動いているWebシステムをつなぐとき、APIがその橋渡しをしてくれます。
また、Flask-RESTfulを使えば、Python初心者でもAPIを簡単に作れるため、今後の開発にもとても役立ちます。
7. 実際のAPI開発でよく使う用語
API開発では、よく次のような単語が出てきます。
- GET(ゲット): 情報を「受け取る」ための方法
- POST(ポスト): 新しい情報を「送る」ための方法
- URL: Webページの住所のようなもの(例:http://example.com/)
- レスポンス: APIからの「返事」
- JSON(ジェイソン): データの形のひとつ。人間にも読みやすく、パソコンも理解しやすい形式。
まとめ
FlaskとFlask-RESTfulを使ったシンプルなAPI開発の流れを学ぶことで、Python初心者でも安心してWeb APIの基本を理解し、実際に動かすところまで進められるようになります。今回の記事では、APIとは何かという基礎からはじまり、Flask-RESTfulの役割、インストール方法、クラスベースでAPIを作成する方法、そして実際のコードの動きまでを丁寧に追いかけてきました。API開発という言葉だけを聞くと、とても専門的で難しいもののように感じられるかもしれませんが、Flask-RESTfulを使えば実際には非常にシンプルな構造でAPIを作り上げることができます。 とくに、APIがスマートフォンアプリやWebサービスの裏側でどのようにデータをやり取りしているのかを理解できるようになると、自分で作るアプリがどのように動けばよいのか、どの部分でAPIが必要なのかが自然と見えてくるようになります。たとえば、天気予報の取得、ユーザー情報の送受信、オンラインショップの商品一覧の提供など、多くの場面でAPIが使われていることに気づくと、Web開発全体の仕組みをより深く理解する助けとなります。 また、Flask-RESTfulの便利なポイントは、クラスベースでAPIの処理を整理できるため、コードの見通しが非常によくなるという点です。クラスごとにひとつのAPIの機能を持たせることで、後から機能を追加したり変更したりするときも迷いにくく、全体の構造がはっきりと見えます。初心者の段階で「構造化されたコード」に触れておくことは、将来的に複雑なアプリを作る際にも大きな助けになります。 以下では、今回学んだ内容を踏まえた上で使える、複数のAPIエンドポイントをまとめた発展的なサンプルコードを掲載しています。クラスを追加してapi.add_resourceでURLに紐づけるだけで機能が増えていく様子を実際に確認してみてください。
複数APIを扱えるサンプルプログラム
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class Hello(Resource):
def get(self):
return {"message": "こんにちは!APIの基本が身につきます!"}
class UserList(Resource):
def get(self):
return {"users": ["たろう", "はなこ", "じろう", "さくら"]}
class Status(Resource):
def get(self):
return {
"status": "正常に動作中",
"version": "1.0.0",
"description": "これはAPIの状態を返すエンドポイントです"
}
api.add_resource(Hello, "/")
api.add_resource(UserList, "/users")
api.add_resource(Status, "/status")
if __name__ == "__main__":
app.run(debug=True)
このサンプルでは、トップページでメッセージを返すAPI、ユーザー一覧を返すAPI、現在の状態を返すAPIという、合計3つのAPIエンドポイントを構築しています。Flask-RESTfulを使うと、クラスをひとつ追加し、URLと結びつけるだけでAPIが増やせるため、複雑なアプリでも自然な流れで開発を進められます。これらのAPIを実際にブラウザでアクセスすることで、データがJSON形式で返ってくる仕組みを確認しながら、APIとWebブラウザの関係性を理解することができるでしょう。 APIという技術は、一度理解すると非常に応用範囲が広く、どのプログラミング学習の分野においても重要な基礎となります。Flask-RESTfulは初心者が学ぶうえで大きな助けになる拡張機能なので、今回の内容をもとに「POSTメソッドでデータを送信するAPI」や「PUTで更新するAPI」「DELETEで消すAPI」などにも挑戦してみると、自分が作れるアプリの幅が大きく広がります。 また、クラスベースでAPIを定義するという考え方は、Flask以外のDjango REST FrameworkやFastAPIなど、他のフレームワークを使う際にも共通して役立ちます。初心者のうちに理解しておくことで、次のステップに進みやすくなる大きなポイントです。今回の学びが、今後のプログラミング開発の基礎を固め、より自由なアプリケーション作りにつながる道しるべとなることでしょう。
生徒
「先生、Flask-RESTfulを使うとAPIが簡単に作れるって本当に感じました。クラスでまとめるだけでこんなに見やすいなんて驚きです!」
先生
「そうですね。API開発では“読みやすさ”や“管理のしやすさ”がとても大事です。Flask-RESTfulはその基礎を自然と身につけられるので、初心者にぴったりですよ。」
生徒
「APIが天気予報アプリやログインシステムなど、身の回りでたくさん使われている仕組みだと分かって少しワクワクしました。勉強を続けると、もっと複雑なアプリも作れそうですね!」
先生
「ええ、もちろんです。今回の内容が理解できていれば、POSTやPUTメソッドを使った応用的なAPIにも簡単に挑戦できますよ。少しずつステップアップしていきましょう。」
生徒
「はい!次はデータベースと組み合わせて、もっと実践的なAPIを作ってみたいです!」
先生
「とても良い目標ですね。今回の基礎をしっかり押さえておけば、どんなAPIにも応用できますよ。楽しみながら取り組んでいきましょう!」