假设系统中有一个带资源的Web应用程序,以及另一个具有类似资源的远程应用程序的引用,那么您如何表示双向同步操作,该操作将“本地”资源与“远程”资源同步?
例:
我有一个代表待办事项清单的API。
GET / POST / PUT / DELETE / todos /等
该API可以引用远程TODO服务。
GET / POST / PUT / DELETE / todo_services /等
我可以通过我的API作为代理通过远程服务来处理待办事项
GET / POST / PUT / DELETE / todo_services / abc123 /等
我希望能够在本地待办事项集和远程待办事项集之间进行双向同步。
以一种rpc的方式,
POST / todo_services / abc123 / sync /
但是,在“动词很糟糕”的想法中,是否有更好的方法来表示此动作?
GET /todo/1/
和POST
它之间的联系很容易。/todo_services/abc123/
但是,第二种方式-我没有获取数据集并将其放入资源中,而我正在采取的行动实际上导致了对两种资源的潜在修改。我想我可能会依赖“待办事项同步化”本身作为资源 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"}