設計、テストではREST APIの理解と外部サービスを使うことへの意識が求められる。従来の開発スタイルよりも制約が大きいので、制約の見極めと制約下での設計、テストが肝要だ。特有の考え方に慣れないと、想定外の作業やコスト増に直面してしまう。
本PARTでは、設計担当者やテスト担当者が押さえておくべき、従来のシステム開発との違いを説明しよう。
まず、設計担当者、テスト担当者が共通で知っておくべきことは、SaaS APIの仕様だ。
最近のSaaS APIはほとんどがREST APIである。REST APIは「https://api.example.com/[バージョン番号]/[機能名]」といったURLで指定された「APIエンドポイント」に、HTTPリクエストを送る。リクエストの方法としては、GET(取得)、POST(登録)、PUT(更新)、DELETE(削除)といった「メソッド」がある。APIエンドポイントに対して異なるメソッドでリクエストを送ると、メソッドに対応した挙動をする。
例えば、会計SaaSのfreeeで取引機能を扱う「Deals」というAPIは、GETメソッドでリクエストを送ると、JSON(JavaScript Object Notation)形式で記述された取引一覧が返ってくる。POSTメソッドは取引の登録に使う。JSON形式で記述した取引データをリクエストのボディ部に記述して送ると、取引データがfreeeに登録される。登録されたデータがレスポンスとして返ってくる。
設計担当者は、こうしたREST APIに対する操作を使い、スクラッチ開発したアプリケーションとSaaSを連携するシステムを設計する(図1)。SaaS APIごとに制約があるので、それを踏まえて設計する必要がある。どのような制約があるのか、事前の検証も欠かせない。
テスト担当者は設計、実装されたシステムに対してテストを実施する。SaaSという「外部のサービス」が存在する点が従来と異なる。
ここからは設計前の検証、設計、テストとフェーズを分けて、設計担当者やテスト担当者が注意すべきポイントを見ていこう。