こんにちは☔️
毎年、夏になると台風や突然の豪雨が心配なため、スマホアプリで天気予報を見ることが多くなる気がします。
私の使っているお天気アプリは、アプリを開くと登録した地点の天気予報をパッと表示してくれるとてもシンプルな作りなのですが、これは実際に、複数のプログラムたちのやりとりによって実現されています。
今回は、このプログラム同士を繋ぐ仕組みであるAPIについて書いていきたいと思います。
APIとは?
APIとは、あるプログラムの機能を別のプログラムから呼び出して利用する仕組みのことで、Application Programming Interfaceの略称です。APIのうちwebを介してプログラム同士のやりとりをつなぐものはWeb APIに分類されます。
先ほどのお天気アプリで言うと、アプリから別のプログラムを呼び出してデータを受け取り、天気予報を表示しています。詳細はこのような感じです。
- ユーザーがスマホ上でアプリを開く。
- アプリが、登録地点の天気予報の情報を「天気予報の情報を持つサーバー」に対して要求(リクエスト)する。
- 「天気予報の情報を持つサーバー」が、要求された内容について返答(レスポンス)を返す。
- アプリは、受領した情報を表示する。
「天気予報の情報を持つサーバー」には例えば世界各国の気象庁などがあてはまります。
普段アプリを使っているだけでは1.と4.しか見えていないですが、実際は2.や3.でプログラム同士のやりとりが発生しているんですね。
イメージで言うと…APIは「窓口」🪟
APIを呼び出すときは所定のデータを所定の形で渡す必要があります。これは、例えば図書館で本を探しているときに本のタイトルや作者の名前を問い合わせ専用のフォームに入力し、窓口の人に渡すような感じです。窓口係は、申込書をもとに要求されたデータをもとに何らかの処理を行い、結果を返します。
APIのいいところ
天気アプリを自作しようと思った場合、様々な天気のデータを解析して予報を立てるプログラムを作るところから始める…なんてことはなかなか難しいですよね。もし自分の目的にあったプログラムが既に存在していたら、それを利用したいはずです。APIは、このようなシーンで利用されることで、開発をより早く・簡単に進める手助けをしています。
APIの例
世の中には様々なAPIがあり、色々な機能が用意されています。利用に当たっては無料だったり有料だったり、登録が必要だったりするため注意が必要です。
2つの実装方法
Web APIというのはAPIの中でもWebを介しHTTP/HTTPSでプログラム同士のやりとりを実施しているもので、RESTとSOAPという2種類の実装方式があります。
REST
Representational State Transferの略称で、Web API実装のガイドラインです。HTMLの以下4つのメソッドを使って、プログラムに指示を与えます。データのやり取りにはJSONと呼ばれるフォーマットを使用します。後述のSOAPよりも後に発達した方法で、モダンな開発に向いていると言われています。
メソッド | 処理内容 |
---|---|
POST | 作成(Create) |
GET | 読み出し(Read) |
UPDATE | 更新(Update) |
DELETE | 削除(Delete) |
💡各処理はソフトウェアの持つ基本機能であり、それぞれの処理内容の頭文字をとって、CRUD(クラッド)と呼ばれます。
SOAP
Simple Object Access Protocolの略称で、通信プロトコルのひとつです。 こちらはPOSTメソッドのみ使用し、データのやり取りにはXMLという形式を使用します。更に、WSDLファイルというファイルにSOAPメッセージの構造を定義しておくことでやりとりが可能になります。
おわりに
今回はAPIがどんなものかまとめてみました。
次回は実際にAPIを叩いてみる方法についてまとめます!