2011-10-21 18 views
1

私はリソースを削除し、このリソースを参照している他のリソースをユーザーが指定した他のリソースで更新している私のWebサービスの状況に遭遇しました。どのようにRESTfulな方法でこれを達成できますか?安心なwebserviceでの操作の削除

例: DELETEリソースエージェント/ 123 一部の顧客がこのエージェントに割り当てられている可能性があります。したがって、エージェント123ユーザーを削除すると、これらのすべての顧客に対して別のエージェント125が指定されます。

私は、次の方法を考え:URLエージェント/ 125分の123 サーバー上で

DELETE要求を私は、URLのエージェント/ 123でこの要求を処理しますし、新しいエージェントIDが125 とさせていただきます私はこれがRESTfulなやり方から完全に離れていると感じました。この考えを落とすことを考えました。私はこの安らかな方法を教えてください。

別のオプションは次のとおりです。? 私はこれも安らかな方法であるかどうかはわからないエージェント/ 123 ReAssignId = 125

を削除し、私はこのquestionにこの方法に遭遇しました。私はまだこの戦略にも納得できません。

この状況に遭遇したことがありますか?この状況をどのように安らかに処理する必要がありますか?

答えて

1

FWIW、私はオプションDelete Agent/123?ReAssignId=125が好きです。再割り当て番号は単に削除操作に関連するメタバースであるためです。コア操作は削除(リソースは削除され、使用できなくなります)です。

0

これは、新しいエージェントが顧客のために割り当てられたときに、UPDATE操作とDELETEのように聞こえるようになります。両方の方法が幾分原子的でなければならない場合、私は最良のREST完全な方法はクライアントでこれを整理することだと思います。

+0

この操作では、2つの要求をサーバーに送信する必要があります。私はサーバーへの2つの要求を避けようとしていました。 – JPReddy

+0

また、2つの要求は、データが一時的に不整合な状態になることを意味します。 –

0

本当にRESTfulにするには、各顧客リソースを個別に更新してからエージェントを削除する必要があります。しかし、これが他の何よりのガイドラインであることに気づいた場合は、ReAssignIdテクニックを使用しない理由はありません。

+0

彼はどのようなREST制約に違反していますか? –

関連する問題