首页 > html静态站点+Restful API构建网站

html静态站点+Restful API构建网站

想用html静态站点(提供html,css,js等静态资源)+Restful API(提供数据接口)构建网站,通过ajax调用Restful API来获取数据并进行渲染。有没有比较好的示例或者网站是基于这样的架构的,欢迎各路大神回答。还有,其中的用户登录应该怎么处理?静态站点只提供静态资源,登录也通过Restful API,应如何进行设计?


两年多以前的时候,我就考虑过这个问题...没想到,竟然还有来提问的.

比较保守的说,纯html(其实离不开JS)做这个,稍微有点儿困难的.
你的这种思路其实是实现了前后端分离的,放宽看,可以当作是一个C\S架构了,Web站点当作一个客户端app.
这种状况下,web站点的登录状态就不能用传统的cookie+session搞定了(也不是完全不能,只是略二逼),目前比较通用的做法就是使用token来实现用户登录以及用户识别(相当于自己实现一套session机制).每次你访问api(需要登录状态的api)的时候,带上这个token,就相当于传统B\S架构中的浏览器带过去的cookie(标记sessionid的那个cookie),服务端用来甄别用户以及用户状态.
然后是回到开头第二句话,就是这个token如何保密,因为我不太了解JS,所以不清楚这个token如何在前端做到保密,总不能泄漏出去.

然后是,和api交互肯定不能光有token,还要有timestamp,signature,token(经过加密后的),key(用于解密token的key),这些大多都会放到http header中,辣么,JS能不能发送一个完整的可以自定义header的http请求( 不太清楚 )?...所以,开头说了一句,略微困难.

很多人目前的做法是,在你这种设想的前提下中间加了一层node.js,从宏观架构上看,node.js也隶属于前端这一块儿.


例子:http://bigmeow.cn/demo/maicai

其实现在手机端都是这种架构了,html布局,然后ajax请求数据,接着拿到数据后用js模板渲染页面;

关于登陆:由于url是归前端管理了,不归后台了,所以你可以这样设计:
首先是登陆界面,点击登陆后,你在本地cookie存储里噻一个sessionId,或者说是token,这个标志是有时间限制的,一般为半个小时;
然后每进入一个页面,你肯定先要去ajax获取后台数据,这时候你把token也一起通过ajax传过去,后台写好一个过滤器专门用于检测token的有效性,这时候我们约定好一个JSON格式,比如{isLogin:true,result:{a:1,b:2}},若后台检测到没有登录,则返回isLogin:false,ajax的success方法里判断到没有登录,就location.href="登录页面";若后台返回的数据格式是isLogin:true ,则继续往下渲染。
大概就是如此,可明白?楼上说得有些复杂了


对了,我的例子没有做登录验证,因为只是假JSON数据,没有和后台交互的,具体用的技术你可以在源代码中看到。望采纳

【热门文章】
【热门文章】