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

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中获取商品列表和订单列表等就需要这样设计。

时间: 2024-12-17 15:57:52

APP开发实战8-API接口设计的相关文章

APP开发实战5-APP产品和设计人员的工作

(34)在许多APP,尤其是电商APP中,会在购物车.订单或消息图标的右上角设计一个数字角标,显示购物车中的商品数量.订单个数或消息个数. 通常会把角标区域设计成圆形,如果数量不到100时,可以正常显示,超过100,变成3位或4位数时,往往就显示不下了.解决方案: A数字超过100时,显示99+. B 改变角标区域的形状. (35)大多数APP中的许多功能需要在登录状态才能正常使用,目前许多APP都把注销登录的按钮设计在比较深的界面,以让用户一直保持登录状态.如果用户很容易看见注销按钮,那退出登

APP开发实战2-APP产品和设计人员的工作

产品经理通常需要提供产品原型.流程图和说明文档给开发人员. 设计师需要提供效果图和图片资源给开发人员. 2.1在设计原型和效果图时的注意事项 (1)手机屏幕的宽度有限,水平方向尽量少放置内容:而用户已经普遍知道通过向上滑动手指,可以在屏幕的垂直方向翻页显示更多内容,所以可以在垂直方向多放置内容,可以理解为显示区域的高度没有限制. (2)如果当前显示的内容超过了一屏,而用户通过向上滑动手指翻页到了第N页(N>1),此时通常在屏幕的右下角要显示一个图标,用户点击此图标,应用直接显示第1页内容. 如果

APP开发实战3-APP产品和设计人员的工作

(12)在登录和注册界面,建议设计用户需要手动输入验证码,这样可以防止恶意攻击. (13)iPhone手机基本都使用系统自带的输入法,在用户点击搜索区域,弹出输入法软键盘时,软键盘上会显示搜索按钮:Android手机上使用的输入法各式各样,输入法软键盘上不一定会有搜索按钮. 在设计搜索界面时,iOS APP的右上角通常不需要有搜索按钮,但Android APP的右上角最好要设计有搜索按钮.同时要设计搜索不到数据时的界面. (14)原型应该完整体现各种操作流程,尤其是在出错的状况下的各种处理流程.

APP开发实战4-APP产品和设计人员的工作

(23)需要明确哪些界面用网页实现,哪些用Native代码实现:通常内容多变的界面,或者需要可以被链接索引传播的文字内容,等可以用嵌入网页的形式实现. (24)如果在一块区域中,只有一个元素需要用户点击,那可适当扩大这个元素的长度和高度,或设计整个区域都响应用户点击,以方便用户操作. (25)明确是否支持长登录,如果支持长登录时间维持多久. (26)是否支持一个账号在多个设备上同时登录,如果支持各设备之间的数据怎么同步:在某个设备上修改密码后,服务器端应自动注销其余设备上的登录状态. (27)在

面向Web Cloud的HTML5 App开发实战:Browser&HTML5&CSS3&PhoneGap&jQuery Mobile& WebSocket&Node.js(2天)

如何理解Android架构设计的初心并开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程解决的问题. 课程以Android的五大核心:HAL.Binder.Native Service.Android Service(并以AMS和WMS为例).View System为主轴,一次性彻底掌握Android的精髓. 之所以是开发Android产品的必修课,缘起于: 1,     HAL是Android Framework&Application与底层硬件整合的关键技术和必修技

atitit.基于http json api 接口设计 最佳实践 总结o7

atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::serverand android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通參数 meth,param, 2 2.2. 全部的參数定义 2 2.3. key,dynami key)韩式 static key? 2 2.4. 防篡改 sign 2 2.5. Encry加密 3 2.6. zip压缩:: 3 2.7. 首先压缩韩式加密??? 3 3. 选型大全:rim ,ws, http 

Web API接口设计(学习)

1.在接口定义中确定MVC的GET或者POST方式 由于我们整个Web API平台是基于MVC的基础上进行的API开发,因此整个Web API的接口,在定义的时候,一般需要显示来声明接口是[HttpGet]或者[HttpPost],虽然有些接口也可以不用声明,但是避免出现类似下面的错误信息,显式声明还是有好处的. 请求的资源不支持 http 方法“POST 例如在基类定义的查找对象接口如下所示. /// <summary> /// 查询数据库,检查是否存在指定ID的对象 /// </su

1、API接口设计--前言

1.场景描述 比如说我们要做一款APP,需要通过api接口给app提供数据.假设我们是做商城,比如我们卖书的.我们可以想象下这个APP大概有哪些内容: 1)首页:banner区域(可以是一些热门书籍的图片做推广).本周热卖书籍区域.本月好评书籍区域.活动打折的书籍区域... 2)排行榜:比如第一季度热销榜.新书版... 3)书单:管理后台运营添加的书单,比如<程序员从入门到放弃>系列书单... 4)用户相关的:比如用户个人信息设置.订单管理.消息管理.收藏的书籍... 数据是保存在数据库中,考

移动APP开发使用什么样的原型设计工具比较合适?

总结过几个模型后,我就趁热打铁看了第二个题目:移动APP开发使用什么样的原型设计工具比较合适? 这个要分情况啦! 有时候,客户的需求很明显,就是实现几个功能的app(看来是个小型的工程啦)所以瀑布模型就可以胜任了. 有时候,客户的需求不很清晰,这就需要开发人员快速开发一个原型,再和客户详细计划自己需求的功能.如果是一个很大型的app,像淘宝,qq等这样的,需要不断的更新新的功能模块,这就需要开发阶段就要开放式的体系结构,这就需要增量模型, 有时候,类似于针对用户体验的APP就需要快速原型模型,根