网站 API 的两种方式哪种好?

2015-09-02 16:55:00 +08:00
 tonghuashuai

背景

打算做一个网站,因为考虑开发移动客户端,所以关于 api 的方式有下面两种想法,大家给点意见哪种好,或者还有别的更好的方法。

前提

网站前后端使用 Ajax + JSON 的方式数据交互,打算用 AngularJS

想到的两种方式

1. 网站按正常方式开发,然后为客户端单独开发 REST 接口

这样的问题是:
网站既然用 Ajax + JSON 也得写 REST 接口,这样就等于写了两套接口,感觉会有重复的工作

2. 网站和客户端使用一套接口

这样好处:
接口就用一套

这样的问题:
主要是用户验证有点没有想明白,正常网站的用户验证( Session Cookie )和客户端的用户验证( access_token ) 不一致,导致接口得处理不同的来源使用不同的验证方式,第一种方式倒是没有这个问题。
其实这个问题倒是想到一种解决方法,初步想的是把 token 存到本地,不清楚这样是不是最佳实现方式。

或者还有其他的更好的方法

关于这方面有没有什么最佳实践,大家给点指导,多谢!

5942 次点击
所在节点    程序员
29 条回复
zonghua
2015-09-03 13:52:44 +08:00
@learnshare 所以说我问题的关键是怎么逻辑传模板,web 不是客户端,可以都下载下来.现在后端渲染模板并且又是吧模板切块感觉很混乱.
sin30
2015-09-03 14:04:18 +08:00
sin30
2015-09-03 14:07:06 +08:00
learnshare
2015-09-03 14:55:01 +08:00
@zonghua 模板以及整个前端相关的文件,都是静态放在 HTTP 服务器中的,跟服务端一点关系都没有。
zonghua
2015-09-03 15:28:27 +08:00
@learnshare 就是是由前端的代码直接去获取静态目录的模板文件?
zonghua
2015-09-03 15:30:41 +08:00
@learnshare 不对,我好像弄错了。是 url 直接访问模板,然后前端代码去请求数据填充到模板吗
learnshare
2015-09-03 15:31:37 +08:00
@zonghua 是的,前端的资源是通过浏览器直接加载的,跟服务端没什么关系。
nighca
2015-09-03 17:31:50 +08:00
建议用一套啊。

毕竟区别只存在在身份验证上,登陆这种接口可以针对两种情况写不同的逻辑;一般的接口验证方式上的区别就很小,只是 token 的获取方式不一样,可以被封装起来统一处理的。

至于后边三个问题:

1. 存在 cookie 中吧
2. 这个是指客户端吗,带在哪随意吧。网站的话, cookie 反正肯定是在 header 里的
3. 服务端可以通过设置 response 的 header ( Access-Control-Allow-Origin )允许指定域名的页面跨域请求的
a1213125967
2015-09-17 20:32:33 +08:00
mark

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/217891

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX