😆

APIとWebAPIの違いについてまとめてみた

2024/01/23に公開

はじめに

こんばんは。Nihiruです。
都内は寒すぎて、ようやく冬本番という感じです。
今日はタイトルにもあるように、APIとWebAPIの違いについてまとめようと思います。Web開発をしている方やそうでない方も含めて、「API」と「WebAPI」はよく耳にすると思いますし、私自身も意味が混同して理解しきれていなかった部分もあったので、まとめることにしました。今回は、C#のMVCモデルを例に説明します。

APIとWebAPIの違い

まず、これらの違いについて明確にしておきましょう。
1.APIとは
APIとは、 ソフトウェアやライブラリが提供する機能へのインターフェースのことを指します。これには、ローカルで実行されるメソッドや関数の呼び出しが含まれます。
2.WebAPIとは
インターネットを介してアクセスされるAPIを指します。これは通常、HTTPリクエストを用いて、リモートサーバー上のリソースにアクセスします。

これだけでは、まだイメージがつかないと思います。実際にソースコードで確認していきます。

C# MVCモデルにおけるAPI・WebAPIの例

ここでは、APIをよりイメージがつきやすいようにローカルAPIとして位置付けます。C#標準ライブラリの Math.Sqrt メソッドはローカル環境で直接実行されるAPIの一例です。
指定された数値の平方根を返すライブラリですね。
・ローカルAPI

double result = Math.Sqrt(4); // result は 2

以下は、C# MVCフレームワークでのControllerのActionです。ここでは、jQueryを使用してWebAPIにGETリクエストを送る例を挙げます。

getdata.js
$.get('/MyController/GetData', function(data) {
    // レスポンスの処理
});
getData.cs
public class MyController : Controller {
    public ActionResult GetData() {
        // データの処理とレスポンスの返却
    }
}

この例では、jQueryで指定されたURL(/MyController/GetData)がC# MVCのControllerのAction(GetData)にマッピングされており、このActionがWebAPIのエンドポイントとして機能します。

まとめ

・APIは、ソフトウェア内部の機能にアクセスするための手段を提供します。一方で、WebAPIはインターネットを通じてリモートサーバーの機能にアクセスするためのAPIです。
・C# MVCモデルでは、ローカルAPIはライブラリ内のメソッドや関数の形で提供され、WebAPIはControllerのActionを通じて提供されます。これらのActionはクライアントからのHTTPリクエストに応じてレスポンスを生成し、WebAPIのエンドポイントとして機能します。
https://learn.microsoft.com/ja-jp/dotnet/api/system.math.sqrt?view=net-8.0
MDNでは、利用可能なAPIとその仕様書を一覧にしてまとめています。こちらもぜひ確認を!
https://developer.mozilla.org/ja/docs/Web/API

Discussion