0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】Web APIとは何か

Last updated at Posted at 2025-01-11

配属されているプロジェクトでREST APIの実装を担当することになったので、REST APIを理解するうえで前提となる

  • そもそもAPIとは何か
  • Web APIとは何か

についてまとめました。

1. そもそもAPIとは?

APIとは「Application Programming Interface(アプリケーション・プログラミング・インターフェイス)」の略語で、ざっくり言うと、異なるアプリケーション同士で情報をやり取りする際の橋渡し役を行うものです。
インターフェイスは、「接点」「境界面」などの意味を持つ英単語です。
参考記事:
https://mintaku-blog.net/api-difference/

2. Web APIとは

REST APIとは、Web APIの一種なので、Web APIとは何かについてまとめます。
Web APIとは、Webブラウザで用いられているHTTP/HTTPSプロトコルを用いて、Webサーバー間で情報をやり取りするAPIです。
APIにはいろいろな種類があり、例えばWeb API以外には下記のようなものがありますが、情報が多すぎても読みづらくなってしまうので今回は割愛します。

3.Web APIの仕組み

URLとメソッドを指定してWebサーバーにリクエストを送ることで、必要なデータを取得・保存することができます。
具体的には、下記のような仕組みになっています。

無題のスプレッドシート.png

3. リクエスト

WebAPIを利用するには、ブラウザを利用するときと同様にHTTP/HTTPSでリクエストを送る必要があります。
その時に必要なのは、下記の2つの情報です。

  1. HTTPメソッド
  2. URL

HTTPメソッドは、リクエストによってサーバーに期待するアクションを示したものです。
一般的によく用いられるのは、下記の4つです。

メソッド 概要
GET データの取得
POST データの送信(主に新規作成)
PUT データの送信(主に既存データの更新)
DELETE データの削除

参考記事:
https://developer.mozilla.org/ja/docs/Web/HTTP/Methods
https://tsuyopon.xyz/2019/01/31/understand-4-http-methods/
URLには、必要に応じてクエリパラメータで引数を渡します。

4. レスポンス

リクエストを送ると、Webサーバーがそれに応じて処理を行い、クライアントにレスポンスを返します。
レスポンスとして返ってくるデータは大きく3種類に分けられます。

  1. HTTPステータスライン
  2. HTTPレスポンスヘッダ
  3. HTTPレスポンスボディ

実際にWeb APIの取得時に確認するのはレスポンスボディですが、それぞれについて具体的に見ていきます。

4.1 HTTPステータスライン

HTTPリクエストが正常に完了したかどうかを示す、3桁の数字コードのことです。
ステータスコードごとに次のような意味があります。

ステータスコード 意味
100番台 処理中
200番台 処理成功
300番台 リダイレクト
400番台 クライアントエラー
500番台 サーバーエラー

参考記事:
https://developer.mozilla.org/ja/docs/Web/HTTP/Status
https://qiita.com/unsoluble_sugar/items/b080a16701946fcfce70

4.2 HTTPレスポンスヘッダ

フィールド名:内容で構成されています。
レスポンスボディには書ききれない詳細な情報が詰まっています。
レスポンスヘッダの例:

200 OK
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Mon, 18 Jul 2016 16:06:00 GMT
Etag: "c561c68d0ba92bbeb8b0f612a9199f722e3a621a"
Keep-Alive: timeout=5, max=997
Last-Modified: Mon, 18 Jul 2016 02:36:04 GMT
Server: Apache
Set-Cookie: mykey=myvalue; expires=Mon, 17-Jul-2017 16:06:00 GMT; Max-Age=31449600; Path=/; secure
Transfer-Encoding: chunked
Vary: Cookie, Accept-Encoding
X-Backend-Server: developer2.webapp.scl3.mozilla.com
X-Cache-Info: not cacheable; meta data too large
X-kuma-revision: 1085259
x-frame-options: DENY

4.3 HTTPレスポンスボディ

前述したとおり、Web APIの実行結果を確認するときは、主にこちらを参照します。
データ形式としては、たいていの場合JSONを使用します。
下記は、HTTPレスポンスボディの例です。

{
  "searchInformation": {
    "totalResults": "289,000,000", 
    "searchTime": "0.35",
    "formattedSearchTime": "0.35 seconds"
  },
  "items": [
    {
      "link": "https://ja.wikipedia.org/wiki/東京",
      "title": "東京 - Wikipedia",
      "snippet": "東京(とうきょう)は、日本の首都。人口約1,397万人(2020年)。東京都の県庁所在地である。関東地方の、本州のほぼ中央に位置する。" 
    },
    { 
      "link": "https://www.city.tokyo.lg.jp/",
      "title": "東京都 | 東京都公式サイト",
      "snippet": "東京都の公式サイト。くらし・手続き、観光・文化、健康・福祉、産業・労働、防災・環境など、東京都の総合的な情報を掲載。"
    },
    ...
  ]
}

参考記事:
https://zenn.dev/motokikando/articles/354aeb843cc4dd

5. まとめ

  • APIとは、異なるアプリケーション間で情報をやり取りするための橋渡し役
  • その中でもWeb APIは、HTTP/HTTPSで外部のWebサーバーとやり取りするためのもの

6. 参考記事

https://mintaku-blog.net/api-difference/
https://tsuyopon.xyz/2019/01/31/understand-4-http-methods/
https://qiita.com/unsoluble_sugar/items/b080a16701946fcfce70
https://developer.mozilla.org/ja/docs/Web/HTTP/Status
https://developer.mozilla.org/ja/docs/Glossary/Response_header
https://apidog.com/jp/blog/how-to-use-json-in-api-response/

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?