php前后端分离怎么实现?怎么写出高逼格的API?

网友解答: 目前前后端分离已经变得越来越流行了,越来越多的公司都选择这种方式来进行开发。那么具体要怎么实现呢?下面我们来看下。如何实现前后端分离我们就根据我最近做的一个项目来展开讨论吧。

网友解答:

目前前后端分离已经变得越来越流行了,越来越多的公司都选择这种方式来进行开发。那么具体要怎么实现呢?下面我们来看下。

如何实现前后端分离

我们就根据我最近做的一个项目来展开讨论吧。

项目的主要技术架构是:

数据库采用MYSQL

缓存采用常用的redis去实现

后端采用php,主要用lumen框架去搭建

nodejs作为前端服务器,主要用来转发请求

前端界面主要采用bulma框架搭建

定好了需要采用的技术和具体框架,那我们如何利用前后端分离开发模式,开始一个项目呢?

前端提供接口定义建议,和后端一起协商出接口文档。有人会说一般不都是后端一方去提供接口定义嘛,其实在日常项目开发过程中,前端是最熟悉页面交互操作的,哪边需要什么数据,哪边需要一个什么标志位,这些没人比他们更清楚啦,因此他们作为接口文档的主要定义者最适合不过了。当然,如果某个接口涉及到比较多的业务模块时,就需要和后端一起去协商,怎么定义更合适啦。最后后端把具体的接口文档整理实现出来,双方再进行review,等到双方都认可了,正式的接口文档也就出来了。

前后端同步开发。可是后端接口没写好,前端怎么开发啊?这就要前端同学自行mock数据(利用本地json文件,或者在线的一些mock工具)了,然后边写页面边测试。而后端代码中除了功能实现外,也会有详细的测试用例,以保证API的可用性,降低集成风险。这样下来前后端就可以进行快速的联调集成了。

从上面可以看到,前后端互不干扰,并行开发,在这个过程中nodejs起到很大的作用。

常见的前后端分离方案

先上图:

Node+Server是一种常见的前后端分离方案,也是淘宝所使用的前后端分离方案,在浏览器与后端服务器之间增加一个了node server作为中间层,前端资源部署到Node Server中,node server中的model proxy,负责与服务端进行通信。

浏览器发出的请求都会被node server接收,然后通过model proxy调用后端服务器提供的接口。node server接收到后端服务器反馈回来的数据,接着在node server中完成页面的组装渲染,把最终页面返回给浏览器。

这样,前后端就实现了分离和解耦,而且nodejs本身有着独特的异步、非阻塞I/O的特点,也就是说它特别适合I/O密集型操作,在处理并发量比较大的请求上能力比较强,因此,利用它来充当前端服务器,向客户端提供静态文件以及响应客户端的请求,是一个很不错的选择。

前后端分离的一些补充

如果后期并发性不足,性能跟不上,也可以考虑加上nginx。主要实现方式就是用nginx来做反向代理,根据客户端访问的url去转发到不同的服务,这样对性能的提升会有很大帮助。


关于题主问的如何写出高逼格的API?这个我不知道下面说的是否够高逼格哈。

用高逼格编辑器用高逼格框架用高逼格文档生成

这些都搞好了,肯定高逼格!!

标签: