0

臨床データの分析を提供するサービス用の REST スタイル API を設計しています。API を使用すると、ユーザーは患者リソースを作成できます。このリソースは、サーバー側の分析に入力データを提供します。

患者の作成は安全でも冪等でもない (サーバーが ID を割り当てる) ため、POST が使用されます。 POST Patients

患者リソースは大きくなる可能性があるため、更新可能なサブリソース (医薬品など) があります。medications の更新は、med のセット全体が置き換えられるためべき等であるため、PUT が使用されます。

臨床分析は、リクエストによってトリガーされ POST /Patients/{patientId}/analysisResultsます。または、ユーザーは、分析結果が POST /Patients 要求の応答で返されるように要求できます。これにより、追加の HTTP ラウンドトリップが節約されます。

私の問題はこれです。ユーザーは、更新 (PUT) への応答に含まれる分析結果を望んでPatient/Medicationsいます。結果を取得するために 2 回目の要求を行いたくないため、理解できます。したがってPUT Patient/Medications、Patient リソースに関してはべき等ですが、新しい analysisResults サブリソースが作成されるため、すべてのリソースに関してはそうではありません。するべきか:

  • a) PUT でこれを有効にします。
  • b) POST でこれを有効にします。
  • c) 新しい analysisResults を作成するには別の呼び出しが必要だと主張しますが、これによりエンド ユーザーの全体的な応答時間が長くなりますか?
4

1 に答える 1

2

RESTful のままにしたい場合は、オプション C。

オプション A と B は、REST が提供するように設計されているプロパティを弱める可能性が最も高く、キャッシングが直接頭に浮かぶものです。

これが HTML ベースの場合、応答には analysisReport リソースへのリンクが含まれ、ユーザーがアプリケーションを便利な場所に移動できるようになります。

于 2012-10-19T07:34:56.640 に答える