APIとは

えーぴーあい

Application Programming Interfaceの略。ソフトウェアの機能を、ほかのプログラムから呼び出して使うための約束ごと(関数や操作の名前、引数、戻り値、データの形式など)。OSのAPI、ライブラリのAPI、HTTPでデータをやり取りするWeb API(REST APIなど)がある。中の実装を知らなくても使え、APIが同じなら実装を取り替えられる。機械語の水準での約束はABIと呼ぶ。

「API」は、4分野の8問の練習問題に出てきます(Web技術の基礎, クラウドとコンテナの基礎, サイバー攻撃と防御の実務など)。

この用語の分野: ソフトウェア開発とプロジェクト管理

APIの練習問題に挑戦

クラウドのストレージを、①仮想マシンにディスクとして接続してファイルシステムを作り、データベースのデータファイルを置く、②複数のサーバから同時にマウントして共有のディレクトリとして使う、③HTTPのAPIでキー(名前)を指定して大量の画像を読み書きし、容量を前もって決めずに増やす、という3つの用途で使う。①〜③に適したストレージの種類の組み合わせとして、適切なものはどれか。

  1. A①オブジェクトストレージ、②ブロックストレージ、③ファイルストレージ
  2. B①ファイルストレージ、②オブジェクトストレージ、③ブロックストレージ
  3. C①ブロックストレージ、②ファイルストレージ、③オブジェクトストレージ
答えと解説を見る

正解:C. ①ブロックストレージ、②ファイルストレージ、③オブジェクトストレージ

ブロックストレージは、決まった大きさの領域を仮想的なディスクとして仮想マシンに接続するもので、ファイルシステムを作って使い、データベースのように細かい読み書きを速く行う用途に向きます。ファイルストレージは、NFSやSMBなどで複数のサーバから同時にマウントできる共有のファイルシステムを提供します。オブジェクトストレージは、データをキーで識別するオブジェクトとしてHTTPのAPIで丸ごと読み書きするもので、容量をほぼ気にせずに増やせ、画像やバックアップ、ログの保存に向きます。オブジェクトの一部だけを書き換える使い方には向かないので、データベースのデータファイルは置きません。

Web APIが、応答の本文としてJSON形式のデータを返す。本文の形式を示すために応答に付けるヘッダとして、一般に使われるものはどれか。

  1. AAccept: application/json
  2. BContent-Type: text/html
  3. CContent-Type: application/json
答えと解説を見る

正解:C. Content-Type: application/json

本文のデータの種類は Content-Type ヘッダで示し、値には text/html や image/png のような「タイプ/サブタイプ」の形のメディアタイプ(MIMEタイプ)を書きます。JSONのメディアタイプは application/json です。JSONは、{"id": 42, "tags": ["a", "b"]} のように、名前と値の組や配列でデータを表すテキストの形式で、XMLより記述が短く、JavaScriptからも扱いやすいため、Web APIで広く使われています。Accept ヘッダは、クライアントが受け取りたい形式をリクエストで伝えるものです。

解説の中の「API」

「API」が出てくる問題(8問)

  1. クラウドのストレージを、①仮想マシンにディスクとして接続してファイルシステムを作り、データベースのデータファイルを置く、②複数のサーバから同時にマウントして共有のディレクトリとして使う、③HTTPのAPIでキー(名前)を指定して大量の画像を読み書きし、容量を前もって決めずに増やす、という3つの用途で使う。①〜③に適したストレージの種類の組み合わせとして、適切なものはどれか。
  2. Web APIが、応答の本文としてJSON形式のデータを返す。本文の形式を示すために応答に付けるヘッダとして、一般に使われるものはどれか。
  3. RESTの考え方に沿ったWeb APIの設計として、適切なものはどれか。
  4. 開発者が、クラウドのサービスのAPIキーを含む設定ファイルを、誤って公開のGitリポジトリに登録してしまった。気づいてすぐに、そのファイルを削除する変更を登録した。この後に行うべき対応として、最も適切なものはどれか。
  5. ABI(アプリケーションバイナリインターフェース)の説明として正しいものはどれか。
  6. KubernetesのSecretに、データベースのパスワードを保存する。Secretの説明として、正しいものはどれか。
  7. 署名を付けた一般的なJWT(JSON Web Token)の説明として、正しいものはどれか。
  8. 写真の印刷サービスのアプリが、利用者の許可を得て、別の会社の写真の保存サービスにある利用者の写真を読み出す。OAuth 2.0で、利用者に許可を求める画面を示し、利用者が許可するとアプリにアクセストークンを発行する役割はどれか。

ソフトウェア開発とプロジェクト管理の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

HTTP オブジェクトストレージ JSON REST API URL HTTPメソッド Git ABI(アプリケーションバイナリインターフェース) 呼び出し規約 ポインタ

用語集の一覧へ