多个角色的restful API开发

发布于 2022-08-31 20:49:16 字数 286 浏览 17 评论 0

现在要开发一个系统,里面含有多个角色,有老师和学生等,想使用restful服务。

现在设计的架构是api,stu,tea各自一个服务器,stu和tea的所有数据都通过调用api服务器的API进行。为了管理角色,在调用API的时候,都需要进行判断角色,然后进行不同的处理。但是感觉这种方法不够优雅,是否存在更加优雅的解决方式?

有替代的方式是给stu,tea各自配备API服务器,各自调用各自的API服务器上的API,但是这种方法也不够优雅。

现在这种多角色的restful api开发都是如何处理多角色的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

乙白 2022-09-07 20:49:16

我觉得你的第一个方案就挺好的呀, 只是可以稍稍进行封装.

比如说, 所有请求统一通过一个认证过程, 所有 API 方法在注册的时候声明权限, 如果认证完成后, 不具备调用对应 API 的权限, 则在认证过程中断.

目前我用的也是这样的逻辑.

typescriptvar api = new ServerAPI.API(req => {
    return ThenFail
        .delay(1000)
        .return('result');
}, ServerAPI.AuthLevel.anyone);

api.attachTo(server);
时光磨忆 2022-09-07 20:49:16

我们钱也在开发restful API,也涉及到多用户,甚至还需要考虑租户。
目前我的实现方法是在调用API的header里面加入用户名,也有加入token的,然后在接口内部进行判定,,进而执行不同操作,我也觉得不够优雅,期待大神指教

转角预定愛 2022-09-07 20:49:16

给一点设计思路:我觉得最合理的方式应该是同一个URL入口,然后根据不同角色调用不同的实现类。

 多个实现肯定放在一个工程里面,有些公用的实现就可以很方便的继承。外部调用都统一使用一个入口,在服务器进行角色识别和对应的方法调用。比如:

1. 统一入口都是/user/1,判断用户角色进行重定向
2. 如果是role1,重定向到/role1/user/1
3. 如果是role2,重定向到/role2/user/1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文