有点不太明白web和api方式的真正区别,
只是觉得web方式是对应前端用浏览器呈现,而api是对应手机/平板用app呈现
而且,web方式可以自然轻松地维护状态(session, cookie),而api无状态,但是可以人为地用token维持状态。
不知道这种认识是否正确?【问题1】
api方式存在ajax问题吗?【问题2】
用laravel一点点做了一个网站的简陋雏形(自然是web方式),考虑未来开发相应的手机/平板app前端,这个时候我想,能不能去掉所有的web方式访问,无论是浏览器还是app都通过api的方式连接后端(服务端),这样一来,我就不用开发web方式的后端,只要开发api方式的后端就行了。
这样做可行吗?【问题3】
这样做容易实现吗?【问题4】
这样做是否是行业通行做法?【问题5】
先谢!
问题1:基本正确。用token不能算维持状态,只是一个临时的访问令牌而已。
问题2:后端API并不关心前端是不是ajax,毕竟ajax只是web的技术,而API可以接收各种类型的HTTP请求。web的ajax唯一需要注意的是跨域问题。
问题3:当然可行,这就是典型的前后端分离web开发。
问题4:容易,前端和后端可以完全独立开发,只需要API接口约定好。
问题5:其实已经通行很久了,不过你能独立悟出这一点也是不错的。
当然可以,所有前端与服务端的交互都通过api接口进行
关于pc端与app端公用同一套代码api实现的问题,有好处也有不好的地方,因为app受界面的限制,呈现的内容与pc应该还是有区别的,所以分开维护实现比较好,当然也有不好的地方,就是代码修改起来就要修改两个地方,所以还是看自己的综合考虑吧
我感觉如果产品服务需要衍生到很多平台,那就用API的方式开发。而且是各平台的功能、内容都高度耦合。
如果是网站功能很繁多、运营以网站为主,而APP简化了很多,这时候也可以独立给APP做个API,网站还是用传统的方式开发效率高一点。
前后端分离对SEO不太友好。
为了兼顾SEO和前后端分离而让后端换语言就有点太花费时间了