リソースを持つWebアプリケーションと、別の同様のリソースを持つリモートアプリケーションへの参照があるシステムを想定して、「ローカル」リソースを「リモート」リソースと同期する双方向同期アクションをどのように表現しますか?
例:
ToDoリストを表すAPIがあります。
GET / POST / PUT / DELETE / todos /など
そのAPIは、リモートTODOサービスを参照できます。
GET / POST / PUT / DELETE / todo_services /など
APIを介してプロキシ経由でリモートサービスから仕事を操作できます
GET / POST / PUT / DELETE / todo_services / abc123 /など
TodoのローカルセットとTODOSのリモートセット間で双方向の同期を行う機能が必要です。
ある種のRPCでは、次のことができます
POST / todo_services / abc123 / sync /
しかし、「動詞は悪い」という考えでは、このアクションを表現するより良い方法はありますか?
GET /todo/1/
とPOST
それへ/todo_services/abc123/
の2つの方法-データセットを取得してリソースにPUTするのではなく、実際に実行するアクションにより、2つのリソースが変更される可能性があります。私は、リソースそのものが「藤堂syncronizations」を有するに頼ることができると思います POST /todo_synchronizations/ {"todos":["/todo/1/","/todo_services/abc123/1"],"schedule":"now"}
GET /todo_synchronizations/1
=>{"todos":["/todo/1/","/todo_services/abc123/1"],"schedule":"now","ran_at":"datetime","result":"success"}