首页 > 多个角色的restful API开发

多个角色的restful API开发

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

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

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

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


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


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

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

1. 统一入口都是/user/1,判断用户角色进行重定向
2. 如果是role1,重定向到/role1/user/1
3. 如果是role2,重定向到/role2/user/1

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

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

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

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

api.attachTo(server);
【热门文章】
【热门文章】