APIを使用したシングルページアプリケーション(SPA)

この例では、ExampleCoという架空の会社のためにタイムシートAPIを作成します。このAPIにより、従業員・請負業者のタイムシートエントリーが追加できるようになります。

また、このAPIを使って、タイムシートエントリーのログを取ってそれを一元化されたタイムシートデータベースに送るシングルページアプリケーション(SPA)もビルドします。

TL;DR

前提条件

ExampleCoは、コンサルティングを行うスタートアップ企業です。現在、従業員は約100名で、いくつかの業務を社外の請負業者に外注しています。従業員と請負業者は、毎週タイムシートに記入する必要があります。

そこで同社は、通常のWebアプリ向けシングルサインオンで紹介しているシナリオの通り、タイムシートのアプリケーションを構築しました。従業員は、このWebアプリを使ってタイムシートに記入していますが、会社はSPAに変えたいと考えています。SPAは、APIを使って、タイムシートエントリーのログを取り、そのデータを一元化されたタイムシートデータベースに送ります。また、管理職によるタイムシートエントリーの承認も可能になります。

目標と要件

ExampleCoは、フレキシブルなソリューションを構築したいと考えています。現時点で必要なのは、タイムシートエントリーを取得するSPだけですが、将来的には、販売チームの要望に沿ったモバイルアプリなど、さまざまなアプリを作成したいと考えています。そのため、会社は、単一のタイムシートAPIを開発して、このサーバープロセスだけでなく、将来的に導入されるすべてのアプリで時間を記録できるようにしようと決断しました。会社は、このような用途に対応できるフレキシブルなセキュリティアーキテクチャを実装したいと考えています。アプリケーションのコードやビジネスロジックの大部分を、他のアプリケーションと共有できるようにしたいのです。

タイムシートAPIには、認可されたユーザーとアプリケーションだけがアクセスできるようにする必要があります。

このSPAを使用するユーザーは、従業員と管理職の2種類です。従業員は、自分のタイムシートエントリーを表示・作成・削除することができて、管理職は、タイムシートの承認もできることが必要です。

もっと詳しく