前后端高效协同的几点建议

       在研发过程中,前后端的交互相辅相成,一方面后端为前端提供Rest接口服务,另一方面,前端为后端收集用户数据。二者的共同目标是一致的,完成产品需求,服务用户。在这个二元交互的过程,如何把交互做到最为高效,决定了开发协同的效率。

       在这个过程中,Rest接口是前后端服务的纽带。需要注意一下几个问题:

1,后端总体架构对前端的影响

涉及前端配合的地方,如接口校验,token机制等,刚一开始的时候一定要考虑清楚。这些事情,一劳永逸,原则上避免后续出现在非产品需求的地方,前端修改代码,用户升级,带来不好的体验。

2,接口请求的约定

接口是跟着UI走的,正如UI是一棵树,接口也是一棵树。接口调用要采用Action的机制,而不是写死Url路径这种很落后的方式。第一步的接口返回后面几步操作的actions。Action是一个对象。它里面包含了以下几个方面。

rel:用于标记这个action的作用,起到一个标识作用,前端根据rel去取相应的action。

href:调用具体服务的全路径链接url。注意:有些网络请求,需要服务端传递一些参数到前端,统一放到href的后面,以&链接起来。

method:接口调用的方式。常用Get,Post,Put,Delete。

text:对action的描述,多数情况下,一个页面对应一个网络请求,这个text既可以起到说明action的作用,也可以作为页面的title。

params:前端需要上传的参数map,后端返回的action里面不包含这个字段,这个参数和href里面的参数一道,构成了这个网络请求的参数。具体参数怎么放到http请求里面,这个建议使用不同请求方式的默认传参。如Get请求,参数放到Url后面,Post参数放body。。

files:前端需要上传的参数数组,后端返回的action里面不包含这个字段,这个参数用于标识这个接口需要上传文件,以multi-part的方式。

这样封装的好处在于,前端可以使用一套通用请求逻辑,后端也可以写一套通用的接口返回逻辑。这样可以避免写死Url。

3,接口返回的约定:

接口返回的数据是对业务本身的反映。针对接口调用可能出现的情况,包括了以下几个方面。

systemStatus : 平台级的错误,如0代表成功,1代表token失效等等。

apiStatus : 业务级的错误,如0代表成功,其他数字代表其他含义。

data : 返回的业务数据,统一用map结构,即便只需要返回一个数组,也要包装成map返回,这样的好处在于前端可以统一用map来接收数据,容易定义出model对象。

需要注意一点,后台如果用Java开发,那么对于空对象,null,约定一下,凡是null的对象,不要放到返回的结构里面,这样的话,iOS和Android,在解析的时候,就都不出问题,Android解析成null,iOS解析成nil。如果接口返回了null对象,那么在iOS端,使用mj_extension这个框架做反序列化对象映射的时候,就会解析成NSNull,导致一些崩溃的出现。

timeStamp:时间戳;时间问题,校正前后端由于时区不同带来的误差。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,543评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,861评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,940评论 6 13
  • 到了大学的同学一定深有感受,花钱何止如流水简直是瀑布。由于大学自我支配的时间比较多,大部分的同学就用来吃喝玩乐开始...
    蔚蓝11阅读 2,350评论 0 0
  • 蓝蓝的天,我和禹汐从这里飘过。我们来这里干什么嘞…… 哈哈,答案是我们来种无花果的树苗,存活的话...
    朱倩仪阅读 1,715评论 0 0

友情链接更多精彩内容