非エンジニアの同期に「APIってなに?」と聞かれたのでその時の回答をメモ。
細かい仕組みとかは置いといて、イメージだけでもわかるようにって感じ。
※あくまでも私のイメージです。
結論
APIとは、
「特定のURLにアクセスすると欲しい情報が受け取れる」
例えば...
「今日の給食が何か教えてくれる」
っていうAPIがあるとします。
登場人物
- 今日の給食で何がでるかしりたい人:生徒(APIを使う人)
- 今日の給食に何が出るか教えてくれる人:給食作ってくれるおばちゃん(API本体)
生徒 to おばちゃん
「今日の給食教えて」(APIを叩く行為)
おばちゃん to 生徒
「今日の給食は○○だよ」(APIから返却された情報)
```
って教えてくれる。
↑みたいな感じで欲しい情報を提供してくれる機能(おばちゃん)みたいなのがAPI。
## もう少し細かく
APIによっては、
URLを叩く際にこちらからも情報を提供すると、
**①さらに細かいことを教えてくれたりする。**
逆に必要な情報がない場合、
**②何も教えてくれなかったりもする。**
上記の「今日の給食が何か教えてくれる」APIを元に例えると、
**①細かいことを教えてくれる**
生徒 「今日の給食のデザート
を教えて」
おばちゃん 「デザートは☆☆だよ」
`デザート`っていう指定をしたことで"デザート"の情報を教えてくれる。
**②情報を与えないと何も教えない**
`「〇〇学校の人にだけ教える」`っていうルール?みたいなのも作れる。
(セキュリティてきな)
生徒1「今日の給食教えて」
おばちゃん「あなたの学校わからないから教えられません」
生徒2「■■学校の生徒です、今日の給食教えて」
おばちゃん「■■学校の人には教えられません」
生徒3「○○学校の生徒です、今日の給食教えて」
おばちゃん「今日の給食は〇〇だよ」
みたいなね。
**「この情報を与えられたらこの情報を返す」**
だったり、
**「この情報がなかったら(一致しなかったら)なにも返さない」**
っていう作り方もあるよねって感じ。
どう作るかは仕様次第かなと。