Google App Engine で実行される RESTful Web サービスがあり、JPA を使用してエンティティを GAE データ ストアに格納します。
新しいエンティティは、POST 要求を使用して作成されます (サーバーがエンティティ ID を生成するため)。
ただし、GAE DS は結果整合性があるため、どのステータス コードを返すのが最適かはわかりません。私は次のことを検討しました:
- 200 OK: RFC は、応答本文に「アクションの結果を記述または含むエンティティ」を含める必要があると述べています。これは、エンティティが DS に永続化されるときに生成された ID で更新されるため、実現可能です。したがって、更新されたエンティティをすぐにシリアル化して返すことができます。ただし、すべてのノードがまだ整合性に達していない可能性があるため、ID によるそのエンティティに対する後続の GET 要求は失敗する可能性があります (これは、私のクライアント アプリケーションの実際の問題として観察されています)。
- 201 Created: 上記のように、一貫性がまだ達成されていない場合、新しいエンティティの URI を返すと、クライアントの問題が発生する可能性があります。
- 202 Accepted: 上記の問題は解消されますが、新しいエンティティの ID をクライアントに通知することはできません。
このシナリオでベスト プラクティスと見なされるのはどれですか?