APIとはなにか説明できますか?

API」という言葉を聞いて、これが正確に何なのか説明できますか? IT業界に関わっていると、APIという言葉は当たり前のように使われるので、漠然と使ってしまっているかもしれません。

たくさんの人が何気なく使っていますよね(汗)

 APIとは何か、APIの構築が他のタイプのWebアプリやWebサイトの構築になぜ使われるのかなど、今回の記事で説明いたします。

API (Application Programming Interface)

 基本的に、APIはアプリケーションが相互に通信できるようにするだけです。一般的には「おそらくJSONまたはXMLでデータを返す公開されているWebベースのAPI」を意味するような説明だと思います。APIはデータベースでもサーバーでもありません。サーバーのアクセスポイントを管理するコードです。

 この記事では、特定の種類のAPI、クライアントからの要求に応じてデータを返すWebベースのAPIに焦点を当てます。簡単に特徴を説明すると、

  1. 必要な情報の詳細を示すリクエストをAPIに送信できる
  2. APIを使用すると、サイトで他のアプリケーションのデータを変更することもできる。たとえば、さまざまなWebサイトでよくみる「Facebookで共有」または「Twitterで共有」ボタン。これらのボタンのいずれかをクリックすると、アクセスしているサイトがFacebookまたはTwitterアカウントと通信し、新しいステータスまたはツイートを追加してデータの変更が可能。

 というような感じです。

なぜAPIが必要なのか

 たとえば、あなたが別のアプリのデータまたは機能にアクセスしたいと考えていたとしましょう。Twitterにアクセスしたい場合は、Twitterに電子メールを送信して、すべてのツイートのスプレッドシートを要求することもできるかもしれません。ただし、そのスプレッドシートをアプリケーションにインポートする方法を見つける必要があります。しかも、それらをデータベースに保存したとしても、データはすぐに古くなります。この方法ではそれを最新の状態に保つことは不可能です。

 Twitterがアプリケーションにクエリを実行してそのデータを取得する方法を提供し、独自のアプリケーションでデータを表示または使用できるようにすれば、自動的に最新の状態に保つことが可能です。

 大規模なテクノロジー企業、特にソーシャルメディア企業は、データのごく一部を一般に公開することが多いです(Twitterは全データの1%を共有しています)が、APIは政府機関、会議、出版社、ソフトウェアのスタートアップによっても維持されています。ソーシャルメディアコンテンツからランキング、マップ、曲の歌詞、レシピ、天気予報リストなど、あらゆるものを共有するために公開されているのです。個人でも可能です。
 つまり、データを収集する個人または組織は、そのデータを別のアプリで使用できることで、新しいアプリを作ることもできますし、API作成側は、自分たちの製品をより多くの人に使ってもらうことができます。

 APIは、Webアプリケーションやサイトとは異なり、通常、フロントエンドを含める必要はありません。
 データの取得または書き込みのリクエストは、フロントエンドなしでサーバーにHTTPリクエストを送信することで行われます。

APIを発行するのがバックエンドエンジニアの仕事でもありますね。

JSONとはなにか

 JSONはJavaScriptObject Notationの略で、基本的にJavaScriptオブジェクトのように見えるデータを表す方法です。こんな形です。

{“person”: [
“name”: “TIshow”,
“address”: “Tallinn”,
“pin-code”: “000000”,
“phone”: “123456789”,
]}

 データはキーと値のペアとして保存されます。 これは、左側にキー右側に値です。

Pythonとかに出でくるdict型に似てるね

 JSONは、最新のWebアプリケーションのいたるところにあります。 読みやすく、軽量で、JavaScriptで記述されたアプリケーションです。 JSONを返すAPIには、Java、Ruby、Python、JS、PHPなどで記述されたアプリケーションからアクセスできます。これにより、APIはスケーラブルでプラットフォームに依存しなくなります。

APIを作りたい!

 APIの構築は、JavaScript Express、ASP.net for C#、Ruby on Railsなど、サーバー側のWebアプリケーションのプログラミングとルーティングについて少し知っている開発者なら誰でも作ることができます。

無料でAPIを発行してテストできるJSON placeholderというサイトもあります!

パブリックAPIを構築するには、次のものが必要です。

  1. ルーティングを備えたバックエンド
  2. アプリケーションがデータを保存できるデータベース。これは、MySQL、MongoDBなど。
  3. サーバー。インターネットにアクセス可能なVPS(仮想プライベートサーバー)、アプリケーションはDigitalOcean、Amazon Web Services、またはMicrosoftAzureのようなやつ。

 簡単に説明しましたが、こんな感じです。
 TwitterとかYoutubeとかまずはAPIを自分で触ってみると理解が深まると思います。