欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

网站架构问题

程序员文章站 2022-06-05 13:43:25
...
目前我们网站呢有移动端(IOS, ANDROID, PC, TV)四个端,然后呢 除了PC端,其他端都是通过api json数据格式访问获取数据的,但是PC端不是,除非比如一些列表页啊等 是采用api的,其他的PC 页面都是在渲染页面的时候有后台直接生成的。然后我们现在遇到的问题是,这四个端现在需要的接口是不以言的,即使接口一样,那么数据结构或者说字段是不一样的,这个该怎么处理呢?目前我们的做法是服务端采用的MVC模型,外加一个Lib库,然后对于接口的话 只是在控制器调用lib里面的class和方法,对于pc的话 我们实现了一个简单的标签,其实也就是间接的访问class,比如我要获取用户列表在提供家口的控制器中这样子:
// .....
$userList = User::getList()
return $this->success($userList);

那么在PC端的页面的话 就在模板上这么写:

{{ userlist = Tag_User_getList() }}
// ....

基本就是这样子的一个结构,但是这样子很有弊端,比如没法把PC端跟移动端分开不熟,其次,像移动端要的数据,PC端不一定要,反之一样,可能造成读取一些用不到的数据等等吧,
那么我想问像一些大的项目他们是怎么解决这个问题的呢?比如 淘宝啊 京东啊等

回复内容:

目前我们网站呢有移动端(IOS, ANDROID, PC, TV)四个端,然后呢 除了PC端,其他端都是通过api json数据格式访问获取数据的,但是PC端不是,除非比如一些列表页啊等 是采用api的,其他的PC 页面都是在渲染页面的时候有后台直接生成的。然后我们现在遇到的问题是,这四个端现在需要的接口是不以言的,即使接口一样,那么数据结构或者说字段是不一样的,这个该怎么处理呢?目前我们的做法是服务端采用的MVC模型,外加一个Lib库,然后对于接口的话 只是在控制器调用lib里面的class和方法,对于pc的话 我们实现了一个简单的标签,其实也就是间接的访问class,比如我要获取用户列表在提供家口的控制器中这样子:

// .....
$userList = User::getList()
return $this->success($userList);

那么在PC端的页面的话 就在模板上这么写:

{{ userlist = Tag_User_getList() }}
// ....

基本就是这样子的一个结构,但是这样子很有弊端,比如没法把PC端跟移动端分开不熟,其次,像移动端要的数据,PC端不一定要,反之一样,可能造成读取一些用不到的数据等等吧,
那么我想问像一些大的项目他们是怎么解决这个问题的呢?比如 淘宝啊 京东啊等

你这么说,完全不知道你们的网站是怎么回事?好像是4个网站硬捏到一起去了。既然各走各的接口,干嘛要统一接口呢?如果目前数据一致性达到了,那就别在意接口问题了,大改动是不可能了。在接口处把不需要的字段过滤掉就ok了。再深入的事就不要做了,本来就乱糟糟,越改越乱。

个人觉得api接口在设计的时候尽量做到标准化....一套接口,多端调用。

相关标签: php