restful api开发网站的要怎样架构?

发布于 2022-08-28 23:32:46 字数 427 浏览 10 评论 0

看了github 的 api 感觉相当的优雅。通过对restful api的简单了解,有以下问题和想法,不知道对不对!?

  • 可以完全将前端和后端分离开。我可以先开发出一套网站的api出来,然后写前端的时候通过 ajax 使用这些 api,但是隐约感觉全凭ajax不太可靠。这好像完全将前端分离出来,放到静态服务器上也未尝不可,感觉这种想法有点非主流...

  • 和上一点有点相似,逻辑在api实现,但是前端部分的话也要有另一个服务器作为后台,只不过这个后台只是单纯调用api 返回给前台,这样比全靠ajax感觉痛快了很多。

  • 第三个想法,将数据封装好直接返回给前台。这样即使按着restful API 设计风格写,因为没有写出api,好像 restful API 也就没什么意义了。

希望有经验前辈多多指教@ @

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

风筝有风,海豚有海 2022-09-04 23:32:46

API返回JSON,前面可以是ajax也可以网页加载请求,无所谓

我感觉到的优点就是安卓/IOS/PC 可以共用

笨死的猪 2022-09-04 23:32:46

你可以参考下面这篇文章给出的建议:
ENG: http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
CN: http://blog.jobbole.com/41233/

建议将后端服务划分成为2大类
1. domain resource server (基于domain的添删改查的操作)
2. services (功能类的服务)
区分这2个类型的主要区别在于系统的交互被抽象成domain.
如果可以被抽象出domain 例如:
登录和登出可以抽象出User 对象(domain)

login

POST /v1/login

Response

status: 200 OK
Content-Type: application/json
{
    "username": "login_name",
    "login_at": "ISO Date"
}

logout

DELETE /v1/logout

Response

status: 204 No Content

如果不能抽象出domain的,例如: 全站搜索

search

GET /v1/services/search?q=Best Practices for Designing a Pragmatic RESTful API&category=post
冷了相思 2022-09-04 23:32:46

目前的发展趋势就是这样的。
你说的“完全将前端和后端分离开,先开发出一套网站的api出来,然后写前端的时候通过AJAX使用这些API"是完全可行的,AJAX一样可以实现Cookie/Session之类的访问控制,安全性并没有问题。
(我是学过信安的,现在做后台开发的,我可以很负责任的说,AJAX是可靠的。)
当然,现在大部分网站还没有这样,其实问题并不在于这种架构本身,而是这种架构其实是把后端的一部分工作分到前端去了,对前端人员的能力要求比较高。
(举例:以前做前端只需要会HTML+CSS+JS就差不多了,现在你可能还要会个JS框架,熟悉HTTP协议,甚至最好还要懂点后端的知识才行了。)
不过基于目前APP泛滥、RESTFUL API兴起、JS框架层出不穷,网页美观性、用户体验要求越来越高(以至于对前端的技术要求也越来越高)的事实……
这种设计是早晚的事。
各种加载快速、美观、用户体验好、设计更活泼、架构更统一和规范、服务器负载均衡等等的优势我就不说了……
http://www.moonlord.cn

向日葵 2022-09-04 23:32:46

不知道你有没有 分析过 印象笔记 web 版, 或者 国内的 又拍云 存储, 研究一下就知道该怎么办了。

你的问题属于 web 系统架构问题。

这样的项目实施起来并不复杂,但是需要你在前端方面有点研究,光靠 jquery 可是远远 不够用的。

如果还不知道。可以给我邮件 ychangsheng@gmail.com

虐人心 2022-09-04 23:32:46

github 的 api 是典范啊!

如果没有 2022-09-04 23:32:46

关于RESTful:链接
关于API设计:链接

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文