- ベストアンサー
ポケモンGoでもAPI?
お世話になります。 API(Application Program Interface)の意味が解りません。 ネットで検索してもぼんやりとした解説にしか思えずハラ落ちしておりません。 何となく「システム間の連携についての決め事」のように感じるのですが 想像の域を出ておりません。 掲題の通り、スマホゲームの記事にも当たり前のように APIという用語が使われており、理解できていないことに 危機感を覚えております。 私のような素人にでも解るようなご説明をいただけると幸いです。 宜しくお願い申し上げます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
何かの機能を提供する事。 天気情報を提供する。 とあるユーザーの友達リストを提供する。 とあるユーザーの過去の投稿リストを提供する。 何かを提供するためには、対象を絞ったりするために必要な入力形式を決めておく必要がある。 経度と緯度を受け取れば、その地点の天気情報を提供する。 ユーザー名とパスワードを受け取れば、そのユーザーの友達リストを提供する。 出品物の ID を受け取れば、その出品物に対する入札状況を提供する。 何かを提供するためには、それをどんな形式で出力するか決めておく必要がある。 経度と緯度を受け取れば、その移転の天気情報を、〇〇のフォーマットで提供する。 ユーザー名とパスワードを受け取れば、そのユーザーの友達リスト〇〇のフォーマットでを提供する。 出品物の ID を受け取れば、その出品物に対する入札状況を〇〇のフォーマットで提供する。 提供する機能、処理するために必要な入力値、出力形式 という取り決めをして仕様とする。 利用したい側はこの仕様を見て使い方を理解する。 とある地点の天気情報を知りたい場合は、天気情報 API の URL に経度と緯度の値を渡せば、〇〇形式で天気情報を受け取ることができる。 SNS のクライアントを自作するため、利用者自身の友達リストを表示するためには、その API の URL に利用者自身のユーザー名とパスワードを渡せば、利用者自身の友達リストを〇〇形式で受け取ることができる。 ネットオークションで買いたい品物の入札経過を観察するためには、オークション API の URL に出品物の ID を渡せば、〇〇形式で入札状況を受け取ることができる。
その他の回答 (3)
- cwdecoder
- ベストアンサー率20% (200/997)
プログラミングをしない人ならAPIを利用することはないと思います。 例えばパソコンのOS、Windowsの場合Windows API(32ビット時代はWin32 APIと呼ばれていました)というものが提供されていて、 あなたが組んでいるプログラムから、Windows にあらかじめ用意されている機能を呼び出すことができます。 例えば直径や色、座標を指定して画面上に円を描くとか、直線を引くとか、音を鳴らすということも、APIを通じて行うことができます。このような基本的な機能はWindowsが提供してくれるのです。 これを利用すれば、エクセルで音楽ファイルを再生したり、シューティングゲームを作ることも可能となります。
お礼
ご回答ありがとうございます。 少し私には難しすぎて理解が追いつきませんでした。。。
- noranuko
- ベストアンサー率46% (620/1332)
Excelの例でいうなら、「関数」がある意味APIです。 例えば、SUMは =SUM(数値1,数値2,…) ってやると、数値1~..を足した値を表示してくれますよね? こういった「機能」を「プログラムから利用しやすい形で」提供してくれるのが「API」です。 >何となく「システム間の連携についての決め事」のように感じるのですが イメージとしては正しいです。 「決めごとに従って、別のシステム(やモジュール)のAPIにデータを渡すと、そのシステムで処理されて、その結果が返ってくる」 ということです。 このAPIはいろいろな種類がありますが、"スマホゲームのAPI"の場合一般にWeb APIになります。 どういうものかというとAPIの動きをするWebサイトが作ってあって、 そのWebサイトに対してhttpプロトコルでPOST等でパラメータを渡してアクセスすると、サイトで処理された結果がテキスト(JSONやXMLなど、プログラムで利用しやすい形式)で返ってくる、というものです。 例えば上記SUM関数と同様のものだと http://hogehoge.co.jp/sumというURLに "1,2,3,4,5" という足したい数値をカンマ区切りで表記した文字列をPOSTすると、 15という文字列が表示される というような仕組みです。 実際の例としてはYahoo の気象情報API(http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/weather.html)で、 http://weather.olp.yahooapis.jp/v1/place?coordinates=139.732293,35.663613&appid=<あなたのアプリケーションID> こんなURLでブラウザからアクセスすると、東京都港区六本木付近(緯度:35.663613、経度:139.732293)の情報がXML形式のテキストで返ってきます。 XMLなので、が見るには向いていないですがプログラムで情報を解析してやれば、取得した情報を自分の書いたプログラムで利用することが可能になります。 まぁこういうのは実際に使ってみるほうがわかりやすいかもですね。
お礼
ご回答ありがとうございます。 詳しい解説に理解が深まりました。 重ねて御礼申し上げます。
- Kaneyan-R
- ベストアンサー率42% (1340/3127)
簡単に言えば「機能を他のプログラムに提供する」ということ。 例えば、Windowsで「ファイル選択ダイアログを開いて、ファイルを選択。そのファイルを開く」と云う動作を考えてみましょう。 これをプログラムするとなると、ファイルを読み込む動作以外に、ファイル選択ダイアログの外観を含めた動作を一から作らなければいけませんよね? ですが、Windowsが提供するAPIのコモンダイアログ等を利用すると、ファイル選択ダイアログの外観と動作はWindows標準のダイアログ(エクスプローラー)と同じになります。あとは、ダイアログを閉じたときの動作(開くを選択したのかキャンセルしたのか等)によって、どう処理するかを作れば良いわけです。 こんな感じで、特定の決まった動作(ファイル選択とか音楽や動画を再生するとか)をAPIを提供する別のプログラムに任せることで、プログラムの簡略化と操作方法の統一化が可能になるわけです。
お礼
ご回答ありがとうございます。 「機能を他のプログラムに提供する」ということですか……。 例えばの例が私には難しすぎて、恥ずかしながら理解できませんでした。 "Windowsが提供するAPIのコモンダイアログ等"……「はぁ?」 というのが正直なところです(ご丁寧に例示いただきながら申し訳ありません)。「コモンダイアログ」をググって、泥沼にハマってます。 ExcelやWordあたりのアプリケーション例で換言したご説明を いただけると幸いです。図々しい依頼で誠に恐縮ですが 何卒宜しくお願い申し上げます。
お礼
ご回答ありがとうございます。 詳しい解説に理解が深まりました。 どなたかが解説されておりましたが、 関数のような機能と理解しました。 重ねて御礼申し上げます。