APIテストとは何か、REST API テストの正攻法 Vol.1

データを利活用して新しい価値を創造する DX に欠かせないデータ連携。そのデータ連携を実現する REST API のテスト自動化に関する記事をお届けします。

REST API とは何か、なぜ API を使用するのか

REST API のテストアプローチについてお話しする前に、まずは、"API" の役割について簡単に述べたいと思います。

システム開発における API(アプリケーションプログラムインターフェイス)は、さまざまなアプリケーションが共通言語を用いて互いにデータ連携するために使用されます。この共通言語は、多くの場合コントラクトによって定義されます。コントラクトの具体的な例は、REST API の Swagger ドキュメントや SOAP サービスの WSDL です。データベースの場合でも、インターフェイス言語、つまり SQL があります。

UI が人間とアプリケーションとのやりとりを可能にするのと同様に、API はシステムやデバイス間のデータ連携を可能にします。データを利活用して新しい価値を創造する DX に欠かせないデータ連携においては、特に REST API の活用が主流であるため、ここでは REST API テストに関する情報をお届けします。
 
まず、REST API の利点は、部品であることです。REST API を使用すると、システム間のデータ連携が必要になるたびに部品化した API であらゆる種類のデータ連携を簡単に実現できます。さらに、REST API にはコントラクトがあるため、相互にデータ連携するアプリケーションは、REST API のコントラクトに従ってデータ連携する限り、それ以外の部分については好きなように開発できます。これにより、世界中のさまざまな組織のさまざまな開発者が、同じ REST API を再利用して高度な分散アプリケーションを開発できます。
 
昨今のシステムアーキテクチャでは、ユーザーがアプリケーションのフロントエンド(モバイルアプリや PC ブラウザーで操作するアプリなど)を操作するとき、そのフロントエンドはバックエンドシステムとのデータ連携のために REST API の呼び出し(利用)を行います。このようなアーキテクチャは主に次の 2 つの点で開発プロセスを簡略化します。

  • 開発者は、モバイルデバイスやブラウザーごとにカスタマイズされたアプリケーションを作成する必要がない
  • アプリケーション全体を毎回再デプロイせずに、個々の REST API (バックエンド) を改修するだけでアプリケーションを素早くバージョンアップできる
その結果、開発者は、アプリケーション全体のロジックを作り込むことに時間を費やすのではなく、バックエンドを REST API 化して部品化することで、個々の REST API が提供する機能の改修に集中できるため、開発を効率化できます。

REST API の使用例

たとえば、ショッピングを行うスマートフォンのアプリや PC ブラウザーで操作するフロントエンドを開発する際に、開発者は REST API を利用してバックエンドのショッピングサービスとデータ連携するシステムを構築することができます。開発者は、ユーザー操作の適切なタイミングでバックエンドのショッピングサービスの REST API を利用して、ユーザーにシームレスな動線(データ)を提供できます。
たとえば、次のようなケースです。

ユーザー操作 ユーザー操作時に利用する REST API
    1. 面白そうなビデオゲームを探す
    1. itemSearch
    2. ショッピングサービスが Minecraft を提案する
    2. itemLookup
    3. Minecraft をカートに入れる
    3. cartCreate
    4. cardAdd

ユーザーがスマートフォンのアプリや PC ブラウザーを用いてフロントエンドを操作するとき、フロントエンドは開発者が設定した定義に従ってバックエンドのショッピングサービスの REST API を利用します。利用する REST API が期待通りに動作している限り、すべてがうまく機能します。

……しかし、REST API が期待通りに動作すると仮定するのは非常に危険です。
そこで、REST API をテストすることが重要だという認識に至ります。
 次回は、REST API が期待通りに動作することを検証する、REST API テストのアプローチについて考えていきます。

APIのテスト自動化とサービス仮想化を1ツールで SOAtest/Virtualizeに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
parasoft-info@techmatrix.co.jp

CONTACT

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。