restful api 设计,认证和授权相关的问题
有几个问题想了解一下,手机打字太麻烦,问题描述可能不太清楚,见谅。
1.restful API 处理请求时的验证和授权流程是怎么样的?
2.以往照着框架写20分钟一个博客教程代码的时候,许多东西放到session 里面,如用户信息,用户浏览信息,购物车等等。现在用restful api设计的时候,如何处理这些问题?
3.正常的mvc架构和restful api各自分开,每个架构维护一套代码,还是共用一套代码呢?
4.日志问题,每个API 请求都要记录吗?
5.restful API 设计的时候,路由嵌套也就是资源嵌套问题有什么规范吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
你好, 我是@车护宝的研发工程师,对于你的问题我也想表达下我们项目再实施过程的一些经验与看法。
1,2
我们常见的Web应用做身份认证时,基本上都是基于Http本身的无状态的cookie与服务端的session回话机制来处理。 服务端为每一个请求做一次session身份回话(也就是知道你是谁的标签)。
REST API设计使用场景可以分两个方面
1、为你的WEB应用提供服务
2、为你的移动应用提供服务(包括第三方)
当为Web应用提供服务时,你可以使用session回话机制处理你的身份验证问题
当为移动应用提供服务时,建议使用Token授权机制,也就是为你的应用颁发一个令牌,这个令牌用来统计应用的访问信息:IP,连接次数,设置授权时间,同时可以管理这些信息,中断其连接
3
MVC框架与REST API 虽然是两个开发思想,其实是两个不同的概念咯。REST API为面向资源的一种表现形式。MVC是程序开发的一种架构思想。两个不冲突。你可以将你的业务逻辑通过m层或者service层进行封装,然后通过c层展示出去(rest api 资源子地址也可以对应到c层咯)
4
日志其实很有必要啦, 你可以通过框架去配置你的日志,哪些请求可以加日志,哪些不用,这个在调试接口时非常有用,比如支付功能,如果没有日志,真心脑壳痛
5
我分享下我们现在的接口文档,你也可以关注我的Github(Brave-Cheng)上面有很多整理的REST API的一些有效资源。
保持online
使用yii2框架,搞定你上面所有问题。
如果是自己内部调用,直接约定一个验证token就可以了,如果是供外部调用,请参考oauth2.0流程来实现。
认证机制可以采用基于session的认证(内部使用),对外采用basic auth或者oauth
RESTful API 除了认证,可以为每个API添加用户调用的权限限制,使之更灵活
http://blog.hainuo.info/blog/61.html
这是我用thinkphp来做的管理功能
也是放入到session中,但是人为做了控制
使用
yii2
框架,搞定你上面所有问题。YII2
的高级模板的话,完全可以公用一套系统啊一些参考资源:
RESTful API 设计指南
RESTful API 设计参考文献列表,可帮助你更加彻底的了解REST风格的接口设计。
HTTP API 设计指南
REST API 安全设计指南
提供Restful API的时候如何确保接口的安全性?
Thoughts on RESTful API Design
REST API Design - Resource Modeling
WhiteHouse/api-standards