21
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

APIを1分で理解する。改めてAPIを超簡単に説明するよ

Last updated at Posted at 2021-12-17

##APIって結局何?
どこかの記事で、全てのウェブサービスはブログである みたいな記事を読んだような気がするのですが、確かに、ショッピングサイトでも、SNSでも、メールでも、映像配信サイトでも、結局基本は同じで
フロントからリクエストが来る→サーバーでそれを処理して、データベースから必要な素材を取ってくる→素材をサーバーで料理して、フロントに返す→フロント側は返ってきた料理を綺麗に盛り付けして表示
って事だよね。
で、ここでコアな役割を担っているのがAPI。
自分も、APIって色んなところで聞くし、実際にAPI構築用のコードを打って、それっぽく動いてるんだけど、その実態って、あんまりよく分かってなかったんだよね。
英文、和文を問わず、いろんな人の解説を読むんだけど、やっぱりよく分からない。
なぜ分からないかというと、みんななんかフワッと書いていて、分かったような気になるけど、結局分からない。それと、APIそのものが、結構定義づけがあいまいで、指し示している範囲が広く、みなそれぞれの解釈で理解してるから、言ってることがバラバラだったりする。で、結局なんやねん!と突っ込まざる得なくなる。
で、最近こういう事だったのか!とこれまた自分なりに完璧に理解した!と思ったので、ここに書き散らしておく。
**インプットと、アウトプット用の穴が二つ開いた箱をイメージして欲しい。これがAPIである。**以上。
api.jpg

そう、これがAPIだ!!!
##APIはあくまでインターフェイスの事
もう少しちゃんと解説すると、APIとは、Application programming interface で、あくまでもinterfaceの事。なんかアプリケーションと勘違いしてる人も多い。あと、何らかのバックエンドの機能とか。
インターフェイスって、自販機みたいなもので、ユーザーとシステムの間に立って、人の注文をシステムに伝えてくれる表面の色々な機能。自販機のボタンとか、お金を入れるところとか、釣銭が出るところとか。あれがAPI。自販機の中で行われていることはAPIではない。
さらに分かりやすく言うと、ドライブスルー。
drivethrow.jpg
小窓で所定の方法で注文する(ブラウザからのリクエスト) → オーダーが厨房に伝わり、冷蔵庫から材料を取り出し(データベースから必要なデータを取り出す)、キッチンスタッフが調理(サーバーでデータを処理)→ もう一つの小窓から出来たオーダーを渡す。(ブラウザにデータを返す)
この小窓の部分がまさにAPI。普通、APIって、クエリとかを含んだ長いURLを叩くよね。あのアドレスが小窓の場所を指定していて、さらにクエリが注文の内容って感じ。
で、例えばNODE.JSとかで厨房の部分を構築するわけだ。つまり、サーバー側プログラミングでは、どういうオーダーが来れば、どのデータを取りに行って、どう調理するのかっていうのを構築出来る。
サーバー側バックエンドについてる、クライアントからのデータをやり取りする小窓がAPIで、厨房がいわゆるバックエンド。で、持ち帰って皿に美味しそうに盛り付ける部分がREACTやAngularっていうフロントエンドになる。最近は、APIと聞くと、どうしてもウーバーイーツのドライバーが走っているイメージが止まらなくなってしまう。
ざっくりとしたイメージだけど、抽象的な概念って、分かりやすいイメージで覚えるっていうのが近道だと思うので、簡単に記事にしてみたよ。
あくまでも、初心者の人に向けたあれなので、あんまりあれな突っ込みはご容赦ください。

21
9
4

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
21
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?