微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

同一微服务中多个资源的 RESTful URL

如何解决同一微服务中多个资源的 RESTful URL

我们正在开发一个无服务器应用程序(AWS API 网关、Lambda 和 Dynamo),将用户和组保存在同一个微服务中,因为它们存储在同一个 DynamoDB 表中。用户的 REST 端点如下所示:

/user/invites
/user/:userId/save
/user/:userId/activate

让组的端点看起来像这样一个好主意:

/groups/
/groups/add/
groups/:groupId/remove
/group/:groupId/addUser/:userId

在同一个微服务中可以有不同“基础”的端点吗?

解决方法

就像软件中所有好的答案一样,这取决于!

我的路由理论是问需求:你能在没有组ID的情况下查找用户吗?没有用户 ID 可以查找群组吗?

如果任一答案为“是”,则该资源应该有自己的路线。

将其与多租户系统之类的系统进行比较,其中一个组织具有许多小部件。小部件完全属于一个组织,因此您永远不会直接查询该小部件。

鉴于此,我们有:

/orgs/:orgId - get/put/post org info
/orgs/:orgId/widgets/:widgetID - get/put/post widget info

在您的示例中,鉴于组有很多用户,而用户有很多组(多对多关系),我认为您提供的路由方案是正确的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。