码迷,mamicode.com
首页 > 移动开发 > 详细

APP开发实战8-API接口设计

时间:2016-05-12 12:49:55      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

3.1接口设计

(1)需要确定APP和服务器间用什么格式传输数据,常用的有两种:XML和Json。XML文件中存在大量的描述信息,会大大增加网络传输数据;同样的内容,用Json格式,传输的数据比较少,首选Json格式。

还有一种Protocol Buffers 格式,以二进制的方式传输存储数据,网络传输数据量比Json还少,但要使用proto文件作为格式验证,各语言需要整一堆pb runtime以及对应的代码生成,增加复杂度较高,目前使用的不多。

 

(2)需要设计Json数据的具体格式:

发送请求(无具体参数)

发送请求(有非数组格式的具体参数)

发送请求(有数组格式的具体参数)

操作成功(只返回操作状态,不返回数据)

操作成功(返回操作状态和非数组数据)

操作成功(返回操作状态和数组数据)

操作失败(只返回操作状态和出错提示)

 

在定义Json中的字段名称时,尽量短小,以减少网络传输数据。

 

(3)APP端解析Json格式时,最好采用严格模式,只要从服务器传来的Json数据,和约定的不一致,无论是多字段、少字段还是字段名称变了,APP端都应报错,这样有利于早发现问题。

 

(4)因为服务器端的接口代码可能会发生变化,所以在APP端向服务器端发送请求时,最好把接口的版本号也带上。

如已经上线的旧APP中使用的接口版本是1.0,在上线后接口更新到1.1版本,而且不兼容1.0版本,用户有可能不更新APP,还是使用旧版本APP。

服务器端接收到请求后,发现APP使用的接口版本是1.0,就可以调用旧接口处理APP请求;如果请求中不带版本号,遇到这种状况,就很难处理了。

 

(5)APP往往需要从服务器获取图片,但服务器的图片往往不完全适合APP需要,就需要先在服务器端按APP的需要处理图片,然后把处理过的图片传给APP; APP在发送获取图片的请求时,把所需图片的宽度和高度发给服务器,如采用GET命令,可以按以下方式:

http://www.hello.com/getimage/2/width/100/hight/100

服务器收到请求,就可按APP要求的尺寸处理图片,并发给APP。

(当然也可以用POST命令实现)

 

(6)大多数APP和服务器交互时用HTTP协议,每向服务器发送一个请求都要先建立连接,传输数据,然后再断开连接;即使服务器端有做连接池设计,但连接池中容纳的连接个数有限制。

在设计接口时,在APP端执行的每一个动作,尽量做到只需向服务器发送一次请求;也要减少APP在显示新页面时,发送请求的次数,以减少APP和服务器建立连接和断开连接消耗的时间及资源,提高程序响应速度。

 

(7)对于向APP返回数组数据的接口应设计支持分页操作,提供参数供APP端设置获取元素的起始位置和获取的个数:

数组中有100个元素,但APP端可能第一次从第1个元素开始只获取10个元素,第二次从第11各元素开始只获取5个元素。

如电商APP中获取商品列表和订单列表等就需要这样设计。

APP开发实战8-API接口设计

标签:

原文地址:http://blog.csdn.net/xjbclz/article/details/51367419

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!