![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
いつも、ありがとうございます。
コンピュータ関連のAPIという概念がよく解りません。
Wikipedia等でも調べてみたのですが、恥ずかしながら
理解できませんでした…システム開発をするための
ツールなのかなぁ?と、何となく思ってはいるのですが…。
書店でプログラムに関する書籍がありますが、APIという
ものは、C言語やVisualBasicのような開発言語を指すもの
なのでしょうか?
プリンタやマウスなどの周辺機器を制御する「ドライバ」
とは違うような気はするのですが…。
高校生でもイメージしやすい例でご教示頂けると幸いです。
よろしくお願いします。
そもそも、この質問自体がカテゴリエラーであれば、どこが
適切かをアドバイス下さい。
No.2ベストアンサー
- 回答日時:
共通化された部品のイメージで、おおむね合っているでしょう。
現代のプログラム言語や開発ツールは、プログラムを部分ごとに分けて製作し、結合することが可能なよう考慮されています。(コンピュータの黎明期にはそうではありませんでした)
分けて製作できるようになると、便利な機能をあらかじめ作っておいて使い回すこともできます。ただしプログラムは基本的に融通がきかないので、厳密に決められた記法や順序などに従わないと、せっかくの機能を使うことも結合することもできません。このような利用方法は提供される機能ごとに異なり、APIと呼ばれます。
APIの例として、累乗を求めるルーチン(何らかのソフトウェア)を想定します。その名前はpowerで、実数を2つ与える必要があり、1番目が底aで、2番目が指数nです。結果としてaのn乗を返すものとします。
名前を一文字でも間違えれば機能しません。与える数値の順番を間違えれば、機能しても期待した結果は得られません。ここでは与える数値のデータ型は実数と決めているので虚数は指定できません。よって、もし結果として負の数が返ってきたら、APIの規約自体には矛盾がなくても、APIを実現しているルーチンの方には間違いがあるということになるでしょう。
ご回答ありがとうございます。
おかげさまで、だいぶイメージがつかめるようになりました。
ブラックボックス(関数)の集合体という感じでしょうか。
ありがとうございました m(_ _)m
No.5
- 回答日時:
には10を越える「サンプルレスポンス」の例が紹介されているのですけれど,
そのリンクをいくつかクリックして試してみた上でそれでもなお,
> 恥ずかしながら、XMLなるものを知らないため、
> パラーメータにどんな情報を入力すると、アウトプットに
> どんなリターンが来るかが理解できません。
とおっしゃっているのですね?
No.4
- 回答日時:
具体例として,Java言語のMathクラスを挙げてみます。
次のリファレンスマニュアルを参照すると,
http://java.sun.com/javase/ja/6/docs/ja/api/java …
pow(double a, double b) と書けば,
「1 番目の引数を、2 番目の引数で累乗した値を返します」
sin(double a) と書けば,
「指定された角度の正弦 (サイン) を返します」
sqrt(double a) と書けば,
「double 値の正しく丸めた正の平方根を返します」
などと説明されています。これがAPIの例です。
----------------------------------------
>「関数や規約の集合」ですか…。
> 共通化された部品のイメージと考えてもよいのでしょうか?
細かいツッコミですが(でも重要なポイントだと思うのですけれど)。
共通化とはちょっと違いますね。APIというのは,別に他の部品との互換性は必要ではなく,マニュアルに規定されたとおりの動作をすればよいわけですから。
APIが規定するのは中身ではなく,その機能を呼び出すための界面(Interface)です。
累乗やsin/cos/tanや平方根を計算する部分がどんなプログラム言語で書かれどんなアルゴリズムが用いられているかは問わない,中身はブラックボックスでよいわけです。
APIが規定するのは「こういう記法で呼び出せばこういう結果が得られる」という,やり取りのための仕様です。
> 利用するためのプログラム上の手続きを定めた規約の集合(ANo.1)
> 開発者は規約に従ってその機能を「呼び出す」だけ(ANo.1)
> 厳密に決められた記法や順序などに従わないと(ANo.2)
というこれまでの回答はすべて,APIは中身じゃない,機能の呼び出し方を定めた仕様なんだということを強調しています。
----------------------------------------
BASICやC言語といったプログラム言語が必須ということもありません。
例えば,次のページを参照のこと。
http://geoapi.heartrails.com/api.html
このリファレンスマニュアルに指定されている形式でURL文字列をWebサーバに送信すればXML形式で結果を得ることができるという,Web APIの呼び出し方について仕様を定めています。
----------------------------------------
最後に。
ドライバとかライブラリという用語は,ソフトウェアのモジュールそのものを指す概念です。
http://okwave.jp/qa/q7442369.html
実際には,ほぼすべてのドライバ,ほぼすべてのライブラリは,そのドライバ/ライブラリが提示するAPIを通じてアクセスすることになるでしょうが,中身と界面とでは概念が異なりますから,ドライバ=API,ライブラリ=API という対応は変ですね。
ご回答ありがとうございます。
恥ずかしながら、XMLなるものを知らないため、
パラーメータにどんな情報を入力すると、アウトプットに
どんなリターンが来るかが理解できません。
ただ、APIというものの仕様を理解していなくても、
決められた範囲での入力を行えば、求めたい値が
帰ってくる、というイメージでよろしいでしょうか?
皆さまのご回答から、そのような自分なりのイメージが
形成されたのですが・・・。
間違っておりましたら、ご指摘いただけるとありがたいです。
No.1
- 回答日時:
API(Application Program Interface)とは...
別名Programming Interface
あるプラットフォーム(OSやミドルウェア)向けのソフトウェアを開発する際に使用できる命令や関数の集合のこと、また、それらを利用するためのプログラム上の手続きを定めた規約の集合のことです。
個々のソフトウェアの開発者がソフトウェアの持つすべての機能をプログラミングするのは困難で無駄が多いため、多くのソフトウェアが共通して利用する機能は、OSやミドルウェアなどの形でまとめて提供されています。
個々の開発者は規約に従ってその機能を「呼び出す」だけで、自分でプログラミングすることなくその機能を利用したソフトウェアを作成することができます。
部類的にはプログラマの支援ソフトウェアですね。
ソフトウェアと言う意味ではドライバなどと同類です。
ご回答ありがとうございます。
「関数や規約の集合」ですか…。
共通化された部品のイメージと考えてもよいのでしょうか?
JIS規格(そのものではないと思いますが)のような。
プログラマの支援ソフトというのは、BASICやC言語で
開発をする際に、役に立つ集合体(?)という理解で
よろしいですか?
ご回答に対して、不躾な質問で申し訳ございませんが
補足頂けるとありがたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) おんどとりWebStorage APIから温度情報を取得し表示したい 2 2023/08/03 09:53
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- その他(SNS・コミュニケーションサービス) 2023現在では、ブログとTwitterを連動して投稿は出来なくなってしまったのでしょうか? 1 2023/06/22 20:38
- IT・エンジニアリング プログラミング言語選択について 2 2022/07/09 13:23
- 大学受験 専門学校の志望理由書について自信が全く無くて…添削してください。 「 私は将来、IT企業の第一線で活 3 2022/10/11 01:12
- 英語 ソシュール言語観による品詞、単語、辞書理解の誤り 4 2022/11/24 12:27
- その他(プログラミング・Web制作) AndroidStudio エラー と インストール の件 1 2023/06/27 12:28
- システム システムを開発するにあたって 3 2022/08/06 21:30
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) SwichBotによる自動温度調整を行うには? 1 2023/08/10 13:27
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
J2SDKとJDKって一緒??
-
初心者でCMS
-
日本のソフトウェアが弱いのは...
-
開発
-
行為の時首締めるのって普通じ...
-
野外で露出し、自慰行為を行っ...
-
スマホでの認証コード入力について
-
セフレが行為中笑うっていうか...
-
マッチングアプリ数個ダウンロ...
-
めちゃくちゃ行為の時優しい男...
-
Windowsの"legacy"ってなんです...
-
tiktokの画面が白くなるのはな...
-
この間酔った勢いで知らない人...
-
iPhoneのアプリiSafe ProってPC...
-
Android端末のwifi優先順位設定...
-
xperia XZ1の近接センサーを無...
-
iPhone15シリーズですが、消し...
-
マッチングアプリで付き合った...
-
スマホ画面を上下逆にできるア...
-
外部HDDの使用時間などを知るア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
開発
-
パワポ リボンとツールバーに開...
-
androidタブレットをwindowsに...
-
スパコン「京」の本当の意義
-
開発工数と開発期間の関係について
-
ウォータフォール開発が必須と...
-
iPhoneアプリプログラミング
-
MacでのWEB開発環境について
-
日本のソフトウェアが弱いのは...
-
C言語で書いたファイルをiOS用...
-
Web APIの開発の仕方を教えてく...
-
PowerBuilder 6.5 初心者
-
RAD StudioとC++ビルダーの違い
-
Androidアプリ開発の次のステップ
-
プログラミング初心者です。 ア...
-
開発期間の問題です
-
FPGAやPLDによるIC開発
-
ソフトウェア開発データ白書 SL...
-
類似画像検索について。
-
PHP Ruby Perl の3言語の特徴...
おすすめ情報