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

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

DoubleHeadの回答

回答No.2

なにか大学の本でも読んでおられるんでしょうか。 前の引数の質問も似たような感じですね、 概念的な言葉の羅列ばかり読んでいてもなにもわかりませんよ。 学校の課題なら先生に質問しましょう。 っと、これでは冷たいので。 プログラムってのは一から全て作ると大変なので 既に作成されたものを利用する、ということをよくします。 たとえばJavaなら他のJavaで作ったプログラムのクラスからオブジェクトを 作成してメソッドを呼び出したりします。 C言語なら他で定義された関数を呼び出します。 WEBの世界なら他のサイトで作成されたCGIなどの機能を 何らかの方法で呼び出して結果を自分のサイトに埋め込んだりします。 Googleマップの地図が企業やお店のサイトに埋め込まれてるのを 見たことあるでしょう。 ブログなどにGoogleやアマゾンの広告が埋め込まれているのを見たことがあるでしょう。 ああいうのはあらかじめ用意されたAPIを利用して実現しているわけです。 他にはWordのなかにExcelの表を埋め込むというのをやったことをありませんか? そういうふうに機能を部品として用意して利用してもらうということを よくやります。 機能を呼び出すとき、どのような順序で呼ぶのか データを渡すときどのような形式、データの順序で渡すのか というのがそのAPIを作った人が決めるわけです。 切符の自販機から切符を買うことを考えて見ましょう。 1.まずどこまで行くのか決めます。 2.値段を調べます。 3.自販機にお金を入れます。 4.目的地までの値段のボタンを押します。 5.切符とおつりを受け取ります。 という、データと操作のやり取りがありますよね。 このような切符を買うという機能を利用するための手順や決まりを プログラムの世界ではAPIとかシステムコールとかいろんな言い方をするわけです。 サブルーチンとかシステムコールなどはプログラムの中から他のプログラムを 呼び出すというイメージが多いのに対して APIはアプリケーションから他のアプリケーションの機能を呼び出すイメージを さす事が多いような気がします。 まぁ呼び方やイメージの違いだけといえばそうかもしれません。 本の抽象的な文章ばかり読まずに具体例を見ることをお勧めします。

wanwannakuyo
質問者

お礼

お返事遅れてしまい大変申し訳ありません。。 具体例わかりやすかったです! 抽象的な文章ばっかりだとわからなくなりますよね、、ありがとうございます!

関連する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ポインタにして、ダウンキャストして、、  ということもできるのかもしれませんが、  その方法はなんだか抵抗を感じますし、自分の力量では不具合があったときに対処できないため、  事実上採用できない感じです。 .