由于工作中前后端开发工作分离的问题,现阶段后端功能怎在设计中,前端UI也正在调整中。好像项目也无法开始。于是为了满足提前开发,不用自己创造数据,就尝试使用mock类工具。尝试过Mock.js
对于硬编码的mock不是特别喜欢,也搭过express server,也不是太如我意。就尝试用php写了个小框架,配合Faker,实现了数据的模拟。在我眼中,这才是真正的分离,前后端的中间件
。
修改本地host,(C:\Windows\System32\drivers\etc\hosts)配置一个虚拟域名给localhost。在最后一行中加入:
127.0.0.1 milfun.com
然后在Apache的conf文件中修改httpd-vhost.conf文件,将刚才的虚拟域名加进来。
<VirtualHost *:80>
DocumentRoot "D:\zend\Apache24\htdocs\MilFun"
ServerName milfun.com
<Directory "D:\zend\Apache24\htdocs\MilFun">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
主要分为两个文件夹,MilFun为框架核心文件,app为项目实际开发目录。图中的Faker就是php的mock插件。
既然是中间件,我觉得能实现一些基本功能就好——输入与输出
基本框架:就是十分成熟的MVC结构,但是这里只实现C就好,因为是模拟接口,只要能控制业务跳转就好。业务清晰:所以分析url地址然后分配路由,跳转至对应的php文件,也要有能力获取url中的参数,
我将返回数据写成了R方法,用户就可以快速返回code,message及data Json格式的数据供前端使用。
例如:当用户访问:milfun.com/jobs/ 将会自动跳到app目录下的jobs.php文件中,如果jobs.php不存在则会自动新建一个。
在jobs.php中只有两个函数。All就是url中只有控制器不带任何参数,则会进入All方法中,有带参数则进入One方法中。当然你也可以在这两个方法中写些判断,跳转至具体的业务方法中。
上图中的方法则会自动返回名字、邮箱和地址。
可以不用等待后端功能都开发完毕,再调用数据接口,直接使用模拟数据就好。也可以使用这个项目和后端约定好数据返回的格式,参数。到时候直接修改接口地址就好。这才是真正的解耦吧!
然后在前端中,就不用等待后端所有接口都写好,在来开发了,
除了一些文字数据,也可以模拟头像信息,是不是十分强大。