微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Web应用程序中实现自定义RESTful接口时要考虑哪些因素?

如何解决在Web应用程序中实现自定义RESTful接口时要考虑哪些因素?

| 我目前正在探索用于构建不太复杂的Web应用程序的不同选项,其中涉及一些基于角色的访问控制。此外,必须对少量(大约5个)不同的数据库表执行读/写操作。 我一直在想创建一个基于JSON的API,在该API中,一个或几个PHP文件充当数据库顶部的一层。使用XHR从服务器检索数据,并最终将内容写回到服务器上时,Web应用程序本身将完全是“静态” HTML和javascript。一个例子就是当前的Twitter主页-在查看用户的时间轴时,实际上没有在初始HTML中传递任何推文:所有这些都被一些漂亮的javascript获取。 我看到的一个重要缺点是,Googlebot很难索引这类网站。该应用程序的几个组件应该可以正常运行,就像发布的内容一样,可以毫无问题地出现在Google搜索结果中。例如,Twitter如何实现这一目标?当网络搜寻器接近其服务器时,它们是否在另一个页面上提供服务? 另外,我想听听一些关于此概念的想法……对我来说,这似乎是一种将业务逻辑与表示分离开来的非常有趣且简洁的方法,但是,像往常一样,我可能会非常错误:-)     

解决方法

        好吧,这是一个全球性的问题,需要一个大答案:) 首先,关于您的Twitter问题,他们使用hashbang uri样式。 例如,当您访问twitter.com/cx42net时,您将自动重定向到twitter.com/#!/cx42net。 当它是搜寻器时,例如Google bot,搜寻器会将ѭ0更改为
?_escaped_fragment=
。 对于Twitter,结果为:http://twitter.com/?_escaped_fragment=/cx42net。 为了避免说出错误,我不会在细节上做进一步介绍,最好选择一个好的链接,因此,我们开始:SEOMoz:如何:允许Google抓取您的AJAX内容 现在,对于RESTful中的Web应用程序,我真的很喜欢将客户端与服务器分离的想法,并且我也尝试这样做。 您正在谈论基于角色的访问,这意味着您将必须标识您的用户才能允许/拒绝访问您的api的某些部分。 关于如何在API上对用户进行身份验证,有两所学校: “使用基本HTTP身份验证”学校 “使用OAuth身份验证/授权”学校 前者的实现非常简单,但我建议您通过HTTPS进行,因为密码是通过网络以明文方式发送的。 后者很棒,但是实现起来却更复杂。 但实际上,这可能正是您要寻找的,因为尽管对用户进行了身份验证,您仍可以向他们授予对API某些部分的访问权限,并将它们限制在其他部分。一个常见的示例是Facebook / Twitter如何工作的,并且我确定您已经允许第三方应用程序使用您的Twitter / Facebook帐户。 现在,使用OAuth通常会强制您将登录名/密码表存储在数据库中。您可以使用OpenID,但这比简化用户更让人头疼: 您必须从OpenId提供程序(例如Google)进行身份验证,然后重定向到您的API以允许访问(如果是第一次),然后将用户重定向到您的应用程序。 最后,我将引用弗雷德·威尔逊(Fred Wilson)的成功Web应用程序的十个黄金原则: 速度 即时实用程序 少即是多 使其可编程 清洁 ... 好吧,现在就可以了,如果我有任何其他想法,我将编辑答案并添加评论。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。