APIモック
APIだよ
テスト用だよ
表面上だけ、それっぽく動いてくれるよ
簡単に書くよ
APIモック(読:エーピーアイモック 英:API mock)とは
テスト用に用意された「なんちゃって」なAPI(プログラムや機能に対するお仕事依頼用の窓口(を使うための決まり事))
であり
プログラムから呼び出されると何となくそれっぽい応答をするけど、裏側では特に(本来やるはずの)処理をやっていないAPI
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「API」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
APIは「プログラムや機能に対するお仕事依頼用の窓口(を使うための説明書)」です。
全然無関係なプログラムとかからその機能を利用できるように用意された窓口です。
例えば……と説明し始めるとクソ長くなるので止めておきます。
興味がある方は用語「API」の説明をご覧ください。
なお、APIが何かイメージできない人は
APIを用意すると、そのシステムの機能を他のプログラムから使えるようになる
というのだけ覚えてください。
それさえ押さえておけば何とかなると思います。
以上を踏まえて
呼び出されるとそれっぽい応答をするけど、裏側では特に処理をしていない、テスト用のAPI
が「APIモック」です。
例えば、そうですね。
ピヨ太君がピヨピヨ天気予報システムを作ることにしました。
ピヨピヨ天気予報システムの仕組みは、こうです。
まず、パソコンの中に入れたピヨピヨ天気予報プログラムがピヨピヨ天気予報サーバ(サービスを提供するコンピュータ)にあるピヨピヨ天気予報APIを呼び出します。
そうすると、ピヨピヨ天気予報APIから「明日は雨だよ」のようなお返事が来ます。
ピヨピヨ天気予報サーバの中にある天気を予想するプログラムがあれやこれやして明日の天気を予想してくれたのをピヨピヨ天気予報APIが教えてくれるのです。
ピヨピヨ天気予報プログラムは、ピヨピヨ天気予報APIから来たお返事を画面に表示します。
これがピヨピヨ天気予報システムの仕組みです。
さて、ピヨ太君がピヨピヨ天気予報プログラムを完成させました。
ピヨ太君は完成したピヨピヨ天気予報プログラムをテストしたいです。
でも、ピヨピヨ天気予報サーバとピヨピヨ天気予報APIは、まだありません。
ピヨ太君はドジっ子なのでピヨピヨ天気予報サーバやピヨピヨ天気予報APIから作るという発想がなかったのです。
仕方ありませんね。
ピヨ太君はテストを諦め……ませんでした。
なんと、取りあえず「明日の天気は雨です」とお返事する「なんちゃってピヨピヨ天気予報API」を作ってしまったのです。
なんちゃってピヨピヨ天気予報APIは「なんちゃって」です。
裏にピヨピヨ天気予報サーバ(の中にある天気を予想するプログラム)がいないので、実際に予想した天気を返すことはできません。
でも、呼び出されると、それっぽい返事はします。
なんちゃってピヨピヨ天気予報APIを呼び出すことで、ピヨピヨ天気予報プログラムのテストはできるでしょう。
なんちゃってピヨピヨ天気予報APIを呼び出すことで、ピヨ太君はピヨピヨ天気予報プログラムのテストができました。
めでたし、めでたし。
この話で登場した「なんちゃってピヨピヨ天気予報API」がAPIモックです。
テスト用に用意した(呼び出しのやり方と)お返事だけそれっぽくしてくれるAPI
です。
APIモックを用意するのはテストをやりやすくするためです。
APIモックがあれば本番用のAPIがなくてもテストできます。
あるいは「本番用のAPIだと実際の処理結果を返すことしかできないけど、APIモックではどんな返事をするか指定できるようにする」のようにすることで、いろいろなパターンをテストできます。
APIモックを調整することで、いろいろなやり方でテストできるわけです。
一言でまとめるよ
まぁ「APIモック」って単語が出てきたら「表面上だけ、それっぽく動いてくれる(けど実際には裏側の処理はやっていない)テスト用のAPI(プログラムや機能に対するお仕事依頼用の窓口(を使うための決まり事))なんだな~」と、お考えください。
おまけ
■訳してみるよ
「API」は「Application Programming Interface(アプリケーション・プログラミング・インターフェース)」の略です。
「application(アプリケーション)」の意味は「申請」とか「適用」とか「応用」とかです。
ただし今回は多分「application software(アプリケーション・ソフトウェア)」の略です。
よく分からない人は単純に「ソフト」と解釈してください。
「programming(プログラミング)」はカタカナで「プログラミング」でイメージできますかね。
「interface(インターフェース)」の意味は「接点」とか「境界面」とか「接触面」とかです。
「mock(モック)」の意味は「まがいの」とか「擬似の」とかです。
何となくくっつけると
ソフトをプログラミングするための接点の擬似
となります。
■検索してみる?