Closed1

WebAPI周りの単語集

TakeruTakeru

APIをとりあえず利用してみたときに理解に苦しんだ原因。

あるあるではありますが、新しい知識や技術を手に入れようとするとそこに書いてある単語が分からず、紐づけができないことと、単語の優先順位がつけれないため理解の難易度が格段に上がる。

そのため、今回はAPI周りの単語の意味を整理していこうと思う。

本記事はAPIって結局なんやねん。SlackAPIより。の記事の補足である。

知らん単語が多すぎる

  • HTTP用語(POST, GET など)
  • Webhook
  • SDK
  • Token
  • OAuth
  • Curlコマンド

TTP Request, GET, POST

聞いたことはある単語なので、おそらく界隈の人たちとっては基本中の基本の単語なんやろう。

  • HTTP Requestとは、ホームページを見る際に自分のパソコン(Webブラウザ)からホームページを置いているPC(サーバー)に対してお願いすること。あのページみしてとか。
  • GETとは、自分のパソコンからWebサーバーに渡す値をURLの末尾に記載して送るやり方を指す。
  • POSTとは、自分のパソコンからWebサーバーに渡す値を隠した状態で送るやり方を指す。例えばグーグルアカウントにログインするとき、グーグルIDとパスワードを送るが、それをGETで送ってしまうとURLに丸見えなので、隠して送りたい。そういう時にPOSTを使う。
    要は、自分のパソコンからホームページがあるパソコンに対して、そのパソコンに指示を与えるということである。
    「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典より

Webhook

Webhook(ウェブフック)は、web開発でカスタムのコールバックを用いてウェブページやウェブアプリケーションの動作を追加または変更するための方法である。(wikipediaより)

「カスタムのコールバック」ってどういう意味だよって感じです。
調べてみると、カスタムのコールバックは、特定のイベントが発生したときに、ウェブフックが実行するカスタムまたはユーザー定義のアクションや処理を指します。
まだわかりにくいから、もう少し具体例を話してみると、
Twitterで特定のハッシュタグを含むツイートを検知したとき、指定したURLにPOSTリクエストするなどです。サーバー側から自分の指定したURLにPOSTリクエストできるっていうこと。

  • SDK
    Software development kitの略。ソフトウェアを開発する際に必要なプログラムやAPI・文書・サンプルなどをまとめてパッケージ化したもの。要は便利なサンプルやAPIとかのプログラムが用意されていて開発者は1から開発しなくても大丈夫やでってツールです。

  • Token
    多義あるが、今回のSlackとpython連携では主に認証および認可のためのキーまたは識別子を指します。
    要はそのbotもしくはアカウントがそのワークスペースで認証されるために使用されます。

  • OAuth
    Open Authorizationとはサードパーティアプリケーションへのアクセス許可等に使用される規格のこと。
    Access TokenやAuthorization Server等がある。

API, SDK, Webhookの違い

なんかAPIとSDKとWebhookって似てない?どない違うんですかいうことです。
ことAPIに関してはAPIとそのAPIの中にWeb APIってなものがあるそうで。SlackのAPIとかはweb APIにあたるそうな。
ほんで、本題の3つの違いなんやけど、まずSDKとAPIの違い。これはまず作られた目的が違う。APIは単に、あるサービスやアプリケーションと他のサービスを連携させるために、いろんな機能やプログラムをそのサービスやアプリケーションがただただ用意して公開してるってだけ。SDKはAPIを含めて、あらゆる機能をより簡単に開発できるようにするために便利なライブラリやプログラムが用意されている場所。要は開発者に開発しやすいように補助ツールを用意してあげてお膳立てしてるイメージというのが私の見解です。
で3つ目のWebhook、これはAPIは広義の意味ではWebhookの内容も含んでいるようだが、狭義の意味では異なる。APIは手動で自分のPCからサーバーのPCにHTTPリクエストをし、動作する。一方でWebhookに関してはHTTPリクエストをせずとも動作する。
そのため、例えば、先ほどの「Twitterで特定のハッシュタグのツイートがされたらslackに通知する」をAPIを用いて行った場合、何度もリクエストしなければならないため、処理が増える。そこでwebhookを利用すれば自動的に通知を受けることができる。
ここのページが分かりやすかった。webhookとAPIの違いは何ですか?
WebhookのWeb APIとの違い 〜イベントと通信に着目してみた〜
Webhooks vs. API 〜この違いってなんだっけ?〜

このスクラップは2023/10/04にクローズされました