私が構築しているグリーンフィールド アプリケーションの最初の RESTful API 設計に取り組んでおり、API の URI に関するいくつかのポインターを使用できます。
背景として、システムは臨床医が患者に関するアラートを取得するために使用されるため、臨床医に割り当てられたすべての患者に属するアラートのリストを表示する画面を作成します。
臨床医は、患者名またはアラート タイプ別にアラートを表示できます。
私が最初に考えたのは、次のように URI を使用して非常にシンプルにすることでした。
/api/alerts
- アラートの完全なリストを取得する -
/api/alerts/123
指定されたアラートの詳細を取得する-
/api/alerts?user=mike
ユーザーごとにアラート
/api/alerts?user=mike&groupby=patients
のリストを取得する - ユーザーごとおよび患者ごとにグループ化したアラートのリストを取得する
しかし、私は再考し始め、ユーザーの視点からそれについて考え始め、関係をより良く示す方法を考え始めました。
/api/users
- ユーザーの完全なリストを取得します-
/api/users/mike
指定されたユーザーの詳細を取得します - 指定
/api/users/mike/patients
されたすべてのユーザーの患者の詳細を取得します -
/api/users/mike/patients/alerts
ユーザーの患者のすべてのアラートを取得します -
/api/users/mike/patients/123/alerts
指定されたユーザーの患者の
/api/users/mike/patients/alerts?groupby=type
すべてのアラートを取得します - ユーザーの患者のすべてのアラートを取得し、アラートの種類別にグループ化します。
ですから、私が正しい方向に進んでいるのであれば、どんなアイデアや意見でも構いません。
どちらか一方のアプローチを使用する必要がありますか、それとも両方を使用する必要がありますか?
乾杯、マイク