LoginSignup
7
4

今更ながらAPIとは

Last updated at Posted at 2021-05-03

APIと一言で言っても、よく使うWeb API以外にも様々な場面で使われていて、場面場面で微妙に意味が違うからずっと腑に落ちない部分があったので、今一度きちんと整理しました。

APIとは:

ソフトウェア同士がやりとりをするための決まり事
APIを提供する側使う側の2者が必ず存在し、双方がやり取りするための決まり事

WebAPIを例にとると、アプリケーションの機能を外部から利用できるように、提供側(バックエンド)が呼び出し可能な関数を用意して公開する。

使う側(フロント)は提供された関数を呼び出し、データの取得、書き換えなどを行い連携する。

Webアプリの開発現場ではフロントエンドとバックエンドが開発前にAPIのインターフェース、つまりはリクエスト、レスポンスの決まりごとを話し合って合意形成し、その決まりごとに準じて開発を進めていくのが一般的。

APIの種類:

Web APIだけではなく色々な種類があります。
・OSが提供するシステムコールAPI
印刷機能など

・プログラミング言語が提供するAPI
-JavaScriptであればfetchなど、

・アプリケーション、ライブラリが提供するAPI

・Webサービスが提供するAPI
HTTPプロトコルでネットワーク経由でやり取りするAPI

Web API周辺で開発現場でよくある事:

・フロントはAPIの実装もOPEN APIも待てないので、先にインタフェース決めよう
・バックがフロントにこういう値をリクエストパラメーターに加えて欲しいと依頼
・バックがAPIのインターフェースをまだ決めてない=まだAPIの仕様、データ型、ルールなどを決めてない(設計してない)
・フロントからこういう値を渡すからバック側でもってもらいたい=DBで保存してもらいたい
・このAPIに新しくこの値をつけて返してほしい
など

API仕様書:
APIは使い方の仕様やルール機能の2つで1セットとも言われてます。
仕様や使い方を文書化するのにOPEN APIなどが使われている。

よくフロントエンドの開発で複数のコンポーネントで使われる同じ様な関数は、どこからでも呼べる様にUtilsファイル等にまとめる共通化をしますが、API化は関数をインターネット経由で別のプログラムから呼べる様にする事かなと思いました。

だから、Web APIは「ネットワーク越しに利用できる関数」とも言われています。

WebAPIのまとめ

・サーバーで用意している関数(機能)をネットワーク経由で利用できる様にする事をAPI化と言う。
・HTTPやHTTPSなどを使ってデータを送受信するため、同じ言語で開発されたアプリケーションでなくても連携できる。
・REST APIの場合、URLそのものが関数名で引数を渡す事で結果が変化する。
・利用するには決まり事を守ってリクエストを出す。(API仕様書、ルール)
・決まり事とはURLとか渡すデータの名前とかデータの形式とか。
・レスポンスデータの形式は最近はJSON。一昔前はXMLが主流だった。
・非同期処理なんで、AJAX形式で利用される事が多い(AXIOSも)
・データを常に同じ様に返す、データベース管理上の理由でAPIを2つ叩いてフロント側で結合して使う様なことは多々ある。REST APIだとエンドポイントを増殖させすぎない為。
・PC、アプリなどで様々なデバイスで同じ機能を共通して使うことができるので、開発しやすいという利点がある。
・企業が公開してるWeAPI(有名なのはGoogleMapAPI、ぐるなびAPIなど)を使ってサービス開発を行うことも多い。しかしGoogleMapAPIは無料だったのが従量課金制になったり、食べログAPIがサービス終了したりと企業のWebAPIに依存するのは少し問題もある。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4