用語が色々混乱を招いている感じですかね・・・
まずは、「API(Application Programming Interface)」をおさえましょう。
APIとは、アプリケーションがその機能を使うために用意されたインタフェースです。
APIと一言に言っても、色々な形式が存在します。逆に言えば、「このインターフェースでアクセスしてください」と仕様を出せば、どんなものでもそれがAPIなのです。
API以外のアクセスもおさえておきましょう。
これは、API以外の方法でアクセスする方法です。UIを擬似するものなどもあります。公開されていないDBやファイルを直接参照するのもこれに当たります。
メリット、デメリットですが、
APIは、「安全」がメリットです。
内部構造などが変わってもAPIは変化しづらいし、変更があった場合でもその旨がきちんと報告されるので、将来に渡ってアプリケーションの保守が容易です。公開されているAPI以外の動作はできません。
API以外のアクセスは、「自由」「高速」がメリットになることがあります。
内部情報に直接参照するので、提供元が想定する以外の自由なアクセスが可能です。ただし、想定していない不具合が発生することもあります。
(例えば、不用意に排他制御を含むアクセスを頻発させて本来の処理が止まるとか)
APIの実装ですが、
昔はライブラリなどでアプリケーションに組み込み、関数呼び出しするAPIが主流でした。(関数を呼んだ先で通信などを行って他者と連携する感じです)
最近は、通信仕様をAPIとして公開されることも増えてきています。
( RPCやRESTなどで調べてみてください )
・HTTP通信連携?会話の聞き間違いだったら申し訳ないのですが、webアプリケーションのためすべてHTTPでやりとりするものだと思っているのですが間違いでしょうか?
例えばREST APIは、HTTPでやり取りしますが更にルールが決められています。
webアプリケーションはブラウザからのアクセスが基本動作となっていると思いますが、REST APIはアプリケーションからのアクセスを前提としています。(HTMLを返すわけではありません)
通常はどの手段を使うのか
最近の流行は REST APIですね。