Technology

APIとは | APIとクラスライブラリの違い

2020-12-20

以前、ライブラリとパッケージについて、考えを整理した。

しかし、今回、APIというまた似たような概念が出てきてこんがらがってしまったので、自分の中で整理。


API(Application Programming Interface)とは?

自分のプログラムを、他のソフトウェアの機能の一部と連携させる方法。


例えば?

例えば、GoogleMapがこのAPIというものを提供している。

GoogleMapのAPIを使うことで、ウェブサービスを作る人はGoogleMapを自分のウェブサイトに表示させることができる。

自分でレストランのクチコミサイトだったり、旅行のクチコミサイトだったりを作るときなど、Mapを表示させることができれば便利だ。

QiitaにAPIを使いかた手順も載っている。


(Google Maps API を使ってみた)

https://qiita.com/Haruka-Ogawa/items/997401a2edcd20e61037


APIの一覧でも良さそうな記事があった:

https://www.sejuku.net/blog/7278


利用側のメリットは?

他のソフトウェアの機能をもとに自分のサービスを作り上げられるため、サービス制作のスピードはグンと上がる。

googlemapの例のように、もしマップを1から自分で作っていたら、かなり時間がかかる。


提供側のメリットは?

わざわざ自分たちで苦労して作った仕組みをなぜ共有するのか?

サービスをAPIを通じて多くの人に使ってもらえる。

また、多くの人に使ってもらうことで、多くの利用者に関してのデータを得ることができる。


ライブラリとの違いは?

ライブラリも、便利な機能を呼び出すという意味では一緒だが、何が違うのだろうか?

下記のブログが分かりやすくまとめてくれていた。

APIは既存のソフトやウェブサービスを簡単に利用するためのもの

ライブラリは数学の関数群やファイル操作の機能群といったそれ単体では意味をなさないもの

http://pgpg-sou.hatenablog.com/entry/2013/10/17/014053


違いとしては

  • APIはサービスから切り取った一部分を利用できる
  • ライブラリは既に用意されている便利なクラスや関数といったコード、プログラムの部品達の集まりを利用できる

というイメージだろうか。

-Technology