• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:APIの概念について質問です。)

APIの定義とは?呼び出し手順とは?

kztkの回答

  • ベストアンサー
  • kztk
  • ベストアンサー率53% (59/110)
回答No.4

『インタフェース』 http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9 つまり、何か(A)と何か(B)の中間にある接続部分がインタフェースです。 例えばWindows OSにはGUI(Graphical User Interface)があります。 GUIがOS(A)と人間(B)の間にあるので、人間はOSの複雑な内部構造を知らなくてもGUIを経由してマウス操作をすることによりコンピュータを操作することができます。 APIはApplication Programming Interfaceですが、この場合APIは、呼び出す側のプログラム(A)と呼び出される側のプログラム(B)の間にあるインタフェースになります。大部分の場合、Aはあなたが作るプログラムで、Bは既存のプログラムになるでしょう。 例えば、地図を使ったアプリケーション(A)を作りたいと思ったとしましょう。 1から地図の機能を作ってもよいですが、Googleに高機能なGoogle Map(B)があるのであの機能が使えたら良いのに、、、と思います。 そこでGoogle MapのAPIを使い、地図機能はGoogle Mapを利用して自分のアプリケーションを作ることにします。 APIの具体的なものはは例えばこれです: http://code.google.com/intl/ja/apis/maps/documentation/javascript/reference.html#Map 「機能の呼び出し手順や記述方法などを定めた仕様」が書いてあるのが分かるでしょうか。あなたのプログラム(A)内から、APIのどんなメソッドをどういう記述方法で呼び出せばGoogle Map(B)のどの機能を利用できるのかが定義されています。 APIがあるので、あなたはGoogleがどうやってあのような優れた地図アプリケーションを作っているのかを理解しなくても、APIに従って記述することによりその機能の一部をあなたのプログラムから呼び出すことができます。

wanwannakuyo
質問者

お礼

お返事遅れてしまい大変申し訳ありませんでした。。 ありがとうございます! googleのHPの引用ありがとうございます! わかりやすかった! 説明も抜群によかったです。 ベストアンサー決定!

関連するQ&A

  • js api

    javascriptにおいてapiと関数同じ物なのでしょうか? 以下引用 APIとは、アプリケーションプログラムインターフェイスの略語で、プログラミングの際に使用できる命令や規約、関数等の集合の事を指す。 ソフトウェア開発の際、いちから全てを作るより、APIを利用すればもともとあるプログラムを呼び出して、その機能を組み込んだソフトウェアを開発することができる。 APIの中に関数が含まれているという事でしょうか?

  • 『OS、ミドルウェア、API、デバイスドライバ』って??

    OS、ミドルウェア、API、デバイスドライバ。。 この4つの定義、関連性がよくわかりません。 イメージとしてはこのような↓↓感じでよいんですか??   ━━━━━━━━━━━━━      ソフトウェア                      ━━━━━━━━━━━━━        API        -------------      ミドルウェア       -------------        OS         -------------      デバイスドライバ     ━━━━━━━━━━━━━                      ハードウェア       ━━━━━━━━━━━━━ よろしくお願いします。。

  • EXCITEブログのAPI

    EXCITEブログのAPIを教えてください。もしくは入手方法を教えてください。 Microsoft WordをEXCITEブログへの投稿に利用しようとしたら、プロバイダのブログ アカウントを Microsoft Office Word 2007 に登録する必要があり、 それにはアプリケーション プログラミング インターフェイス (API)が必要とのことでした。

  • AutoCadを外部からコントロールし作図

    宜しくお願いします。 AutoCadをそれ以外のソフト(以下外部と称す)と連携させられるでしょうか? また更に、外部に実装されたスクリプトでコントロールする仕組みは 外部側の対応が問題ないとき 可能でしょうか? (※例:VB,VBA,VC) その際のインターフェイス(?)は OSがウインドウズの場合APIでしょうか? ご教示ください。

  • 外部プログラムからAPI経由で利用可能な翻訳ソフトを探しています

    外部プログラムからAPI経由で利用可能な翻訳ソフトを探しています 条件としては ・APIが提供されており、外部プログラムからの呼び出しが可能 ・ユーザー辞書の設定が可能 です。 有料/無料問いませんが、個人利用目的のため安ければ助かります。 サーバ形態で提供される翻訳ソフトの場合はAPI利用可能な物も見受けられますが、 これらはビジネスユースを想定しているためライセンス料が非常に高かったりで手が出せません。 また、WebではGoogleやMicrosoftが翻訳APIを公開していますが、 ユーザー辞書の設定などが出来ず翻訳精度の向上に限界があるため除外します。 色々と条件付きですいません。

  • API Hooking の実用性・実効性について?

    (1) API Hooking Tutorial http://ruffnex.oc.to/kenji/text/api_hook/ (2) Advanced Windows (下巻) 日経BPソフトプレス により API_Hooking に関する勉強してその基本原理を理解したつもりです ⇒ 細い所では多々不明な箇所もありますが・・・・ しかしながら上記2点の資料や関連サイトを繰返し眺めても分からない所があります それは『 API Hook はどんなソフトのどんな機能として現実に役立っているか? 』という点です APIをHookする動作原理は概ね分かりましたが、この原理を活用しているソフトにはどのようなものがあるのでしょうか? またそのソフトは如何なる機能を実現する為にAPI Hookを使用しているのですか? 想像力・創造力が欠如している私にはAPI Hookの実用性・実効性が分かりません API Hookを活用しているソフトをご存知でしたらお教え願います また具体的なソフトではなくとも『私はこういう問題を解決する為にAPI Hookを利用した』との体験談でも結構です 宜しくお願い申し上げます

  • GoogleMaps APIで作った地図の表示

    GoogleMaps APIのキーを取得し、LAN内のApacheサーバ上にこの機能を利用した地図を埋め込んだWebページを作成しました。このことに関して質問があります。 (1)LAN外部からのアクセス不能 LAN内部からのアクセスでは正しく表示されるのですが、LAN外部から見ようとすると、ページの地図のあるべき場所が白い空間になってしまいます。同じページの文字などはちゃんと表示されること、また、ページのタイトルも表示されることから、パーミッションなどの設定ミスは考えにくいと思っています。 考えられうる原因はどのようなものがあるでしょうか? (2)APIの適用ディレクトリは? APIを申請する時に、利用するURLを記入する部分があります。 例えば"http://abc.***/"とした場合に、その配下のディレクトリ(例えば"http://abc.***/test/")のページも含まれるのでしょうか?それとも、それぞれ別個に申請すべきなのでしょうか? 以上、よろしくお願いいたします。

  • OSについて。

    情報の宿題で 「OSを次の語を使って説明しなさい。アプリケーションソフト、ハードウェア、システムコール」 という問題があるのですが、うまく文章をまとめられません・・・。 とりあえず、次のように考えてみたのですがどうでしょうか? あと、もっと簡単に説明する方法はないでしょうか? アドバイスお願いします。 OSとはコンピュータにおいてハードウェアへのインターフェースを抽象化してアプリケーションソフトに提供するソフトウェア。各ソフトウェアが個別に対応していては非合理なため、システムコールという処理を利用する。

  • コンピューターについての質問です。。。

    コンピューターについて述べた文のうち、適切で『ないもの』はどれでしょうか?  (1)ソフトウェアを入れ替えることで、様々な用途に利用可能である  (2)電子回路を含むハードウェアと、用途に応じたソフトウェアからな  る  (3)制御・演算・記憶・入力・出力の機能を持つ  (4)制御機能を持つという点で、一般的な電卓とは異なる  (5)させたい仕事の手順を厳密に記述しなくても、コンピューターは適  切に解釈して、仕事を行うことができる (1)~(5)のうち、正解はどれでしょうか? 何となく(1)、(2)、(3)は違う(適切である)感じはするのですが・・・ 回答よろしくお願いします!

  • APIをラップしたクラスの設計と開発

    APIを使用する際、APIの利用部分を1箇所に集めておくために、 ラップするクラスを作った上で、そのラッパー経由でAPIを使用するようにしています。 そのラッパークラスの設計と実装で、わからないことがあります。 下の【1】と【2】を同時に実現しようとしたら、 矛盾してできないようなのです。 【1】 ラッパークラスを作る際、   (1)インタフェースを定義するための基底クラスと、   (2)その基底クラス(インタフェース)を実装する側のクラスを作ろうとしました。 【2】 使うAPI(ミドルウェア)を切り替える可能性があったので、   ・どのようなミドルウェアでも共通に使えるようなインタフェースにしようとしました。 しかし、インタフェースを作ろうとした時点で、 インタフェースとして使われるというか、 引数として渡したり、戻り値として返して貰う「データ型」「クラス」が、 「ミドルウェア」に依存してしまうために、 「基底クラスのインタフェース」にミドルウェア固有の型が入らざるを得ないと感じました。 通常、【1】と【2】は同時には実現できないという認識で良いのでしょうか? また、【1】の基底クラスと実装クラスを分けるということだけを実現しようとするなら、  データ型xを、   #Define WrappedX ラップデータ型X;  #Define WrappedY ラップデータ型Y;  とした上で、基底クラスのインタフェースで登場する、  Inputの型とOutoutの型を、見かけ上、ラップデータ型X、ラップデータ型Y  にすることを考えていますが、  他の開発者の方はどのような方法でクラスの設計・開発をしているのでしょうか? ※引数も、戻り値も、  voidポインタにして、ダウンキャストして、、  ということもできるのかもしれませんが、  その方法はなんだか抵抗を感じますし、自分の力量では不具合があったときに対処できないため、  事実上採用できない感じです。 .