84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
作为菜鸟程序猿,之前写的代码都是混合代码,垃圾代码的一类,刚刚接触到前后端完全分离的写法,主要是API接口。所以想问问各位大牛,各位在做项目的时候是如何前后端分离开发?如何在项目中使用restfulAPI的?PHP给前台,IOS,安卓的接口有啥不一样?希望能有体系的给我讲一讲,感谢各位
ringa_lee
第一个你问的是api的设计问题,看团队情况,模块清晰,能快速使用即可。第二个你问的是浏览器前端和手机app的区别。有以下3点:
浏览器相对来说,一般情况下,没有版本兼容问题。而给app的你需要考虑,api的版本处理,如何进行路由。(至少app需要给你一个版本号)
你需要和app定义好统一的数据格式,例如经典的
{ "code" : "状态码", "msg" : "信息", "data" : { } }
app接口的权限验证不一样,我的建议是走https请求,然后自己实现一套类似于浏览器的session机制
例如,我最近写的认证基于用户授权的app接口认证
如果是纯接口,我以前给web,APP的接口内容都一样,都用json,无论APP和web,都能自己解析json
不考虑安全的话,直接用json就够了。
前后端分离无非是前端和后端各写各的毫无依赖,唯一联系就是预先根据功能定好的API接口既然是前后无依赖,那么web和mobile调用的接口自然可以统一
输出json,看需求是否要加密接口
http://doc.thinkphp.cn/manual/rest_intro.html以上是thinkphp REST API的声明与编写方法,这是很基础的方案,对于一般的项目来说已足够。
而完整的WEBAPI除了能提供数据之外,认证与权限资源管理都是相当重要的。而目前数据中心能力较强的系统(如drupal8, magento2等)都已经有完善WEBAPI功能与数据后台,所以也是可以考虑使用这些开源系统作为后端数据中心,会省不少开发时间。
Smarty模版引擎
第一个你问的是api的设计问题,看团队情况,模块清晰,能快速使用即可。
第二个你问的是浏览器前端和手机app的区别。有以下3点:
浏览器相对来说,一般情况下,没有版本兼容问题。而给app的你需要考虑,api的版本处理,如何进行路由。(至少app需要给你一个版本号)
你需要和app定义好统一的数据格式,例如经典的
app接口的权限验证不一样,我的建议是走https请求,然后自己实现一套类似于浏览器的session机制
例如,我最近写的认证基于用户授权的app接口认证
如果是纯接口,我以前给web,APP的接口内容都一样,都用json,无论APP和web,都能自己解析json
不考虑安全的话,直接用json就够了。
前后端分离无非是前端和后端各写各的毫无依赖,唯一联系就是预先根据功能定好的API接口
既然是前后无依赖,那么web和mobile调用的接口自然可以统一
输出json,看需求是否要加密接口
http://doc.thinkphp.cn/manual/rest_intro.html
以上是thinkphp REST API的声明与编写方法,这是很基础的方案,对于一般的项目来说已足够。
而完整的WEBAPI除了能提供数据之外,认证与权限资源管理都是相当重要的。而目前数据中心能力较强的系统(如drupal8, magento2等)都已经有完善WEBAPI功能与数据后台,所以也是可以考虑使用这些开源系统作为后端数据中心,会省不少开发时间。
Smarty模版引擎