以RESTful方式转换资源
我目前一直在设计我的端点,使它们既符合REST原则,又能确保底层数据的完整性 我有两个资源,以RESTful方式转换资源,rest,design-patterns,transactions,Rest,Design Patterns,Transactions,我目前一直在设计我的端点,使它们既符合REST原则,又能确保底层数据的完整性 我有两个资源,ShadowUser和RealUser,而第一个只有名字、姓氏和电子邮件。 第二个用户有更多的属性,比如一个Id,在这个Id下,真实用户可以在系统中的其他位置被寻址 我的用例是将特定的ShadowUsers转换为真实用户 在我看来,流程似乎很简单: 获取影子用户/get api/ShadowUsers?someProperty=someValue 使用获取的数据/POST api/RealUsers创建
ShadowUser
和RealUser
,而第一个只有名字、姓氏和电子邮件。
第二个用户有更多的属性,比如一个Id,在这个Id下,真实用户可以在系统中的其他位置被寻址
我的用例是将特定的ShadowUser
s转换为真实用户
在我看来,流程似乎很简单:
- 获取影子用户/get api/ShadowUsers?someProperty=someValue
- 使用获取的数据/POST api/RealUsers创建新的真实用户
- 删除影子用户/删除api/ShadowUSers?SomeProperty=someValue
是否有可以使用的“最佳实践”或“设计模式” 可能是RESTful API批量获取和发布这些真实用户的角色(几周前我问了一个相关问题:) 在API端,不会直接处理已发布的用户,但会将他们排在可靠的消息队列中(例如)。后台进程将订阅整个队列,它将分别处理真实用户和影子用户的创建和删除 使用可靠的消息传递系统的意义在于,您可以实现重试策略。如果在完成工作的过程中中断操作,则可以重试并检测哪些更改仍有待完成任务。 总之,使用这种方法,您可以以事务方式实现该操作