说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

程序员心髓:移动应用API设计10大技巧

HTML文档下载 WORD文档下载 PDF文档下载
移动App与基于Web/云服务发生对话很常见,小到检索数据,大到用户授权和管理等行为。如果想要保证App正常高效运行,并降低开发成本、使应用代码简单化,建立API是必不可少的步骤,本文介绍了10大移动API设计技巧。

移动App与基于Web/云服务发生对话是很常见的事情,最简单的可能仅仅只是检索数据,但也可能包含发送数据、用户授权和管理。而这也就验证了为移动应用建立API的重要性,为此,我们特总结了10大移动API设计技巧。


1. API版本控制

无论何时,开发者要想保证应用正常运转,对API进行修改总是不可避免的,可能只是对某些功能执行添加、删除或其他操作。当遇到这种情况时,你就不得不暂停API部分的使用,或者允许正在使用的应用对需要被返回的行为及响应类型有着明确的认知。


API就如同你的应用后端与使用它的应用之间存在一个约定。没有适当的版本控制,一方可以在另一方完全不知晓的情况下更改约定,那么,你将处于非常危险的境地。对多个API版本提供支持,可以让那些没有及时升级应用的用户继续使用,而通过App的最新版,可以让你了解到最新API的所有变化。

在一款移动App中,API版本控制的重要性显而易见。如果没有API的版本控制,那么在对API进行修改时很容易会造成App停止运行,由此而造成的后果,会让你哭天抢地追悔莫及。

2. 返回数据,不要超出需要

在一定程度上,应用与服务器之间发送的数据量将会影响发出请求及其响应的时间。它所造成的影响不仅仅只是用户紧盯加载页面所花费的时间,还可能包括加载页面所花费的流量。

3. 对发送及接收数据进行压缩

除了上述不要返回数据超出需要之外,通过对发送及接收的数据进行压缩,可以让你在速度和数据传送上事半功倍,体验到更多的好处。

4. 坚决删减多余的步骤/请求

为了提供单独的离散步骤而进行API设计的情况很常见,但这是反映该服务是如何被使用的。因此在大多数情况下,这些离散步骤反而不是执行移动App最行之有效的方法。

让我们来举一个非常简单的例子。当用户在可以发送请求数据之前已经提供了有效的认证信息并登录。这可能很是合情合理,我们可以将其理解为两个单独的步骤:

  • 提供的认证信息有效,API响应一个会话令牌。
  • 当数据请求发出时,该会话令牌通过。

但事实上执行此操作并不需要如此反复的过程。当一个单一的请求发出时,通过认证信息及其相关数据细节,数据及会话令牌在请求过程中同时被返回。

这样做的好处是当用户使用App时,响应速度更快,使用流量也更少。对于开发者而言,这可以让应用代码更为简单,如此一来,既降低了开发成本,也可以减少维护费用,皆大欢喜,何乐而不为呢。

5. 合并请求及响应

除了作为身份验证或应用启动过程中所发出的多重请求,在应用程序的单页或视图中,为了对所有数据进行检索,都有可能发出多重请求。为页面需要的所有数据建立一个单一请求,其速度要比多重请求快得多,并且成本也更低。而速度及成本也正是用户在使用应用程序时首先考虑的两大要素。


再者,合并请求及响应也可以让应用代码更为简单,尤其是关于处理多重请求发出却没有成功的情况。如果将所有请求进行合并,或化整为零,再多的异常情况也都变得非常简单,容易处理。

6. 重中之重:安全性

安全性是一个潜藏着危机可能随时会迸发的复杂问题,这也使得App对于安全问题及时做出响应难上加难。

因此,要时刻考虑以下内容:

  • 确保数据在传输过程中绝对安全;
  • 数据等待传输时安全;
  • 使用API不当或未经授权;
  • 潜在的恶意或意外数据所带来的后果。

7. 认真计划并执行你的缓存策略

如果你的应用API返回值不会经常性改变,那一定要实施适当的缓存策略。这可能会涉及到在内存中保存数据,而不是反复地从硬盘中读取数据,此外,还会对HTTP部分的缓存性能产生影响。

  • 服务器端

如果你在服务器上进行缓存,那么,就要确保当遭遇宕机之时,你能有办法强行停用服务。

  • 客户端

除了服务器端,使用API的应用客户端也要确保实施适当的缓存策略。如果你在使用最新返回的数据时请求调用,那么你可以节省一定的时间及资源。如果你在初始化时避免执行调用操作,则会节省更多的时间和资源。

8. 整合分析

分析是理解一个App如何使用的非常重要的组成部分。在App正常使用期间,对于调用而言,除了发出数据请求之外,做出一个分析服务是很常见的。例如,如果应用尝试调用服务来刷新页面显示数据,然后用户导航到该页面,那么就会在添加一个单独的追踪/分析到该导航时产生冗余。


在最原始时期,使用API可以对App的使用方法及时间起到一个指示性的作用。与之对比的是丰富的分析工具及框架,它们可以提供用户与App交互的非常详尽的信息。如果目前的你是介于两者之间,那么,就请认真思考如何进行整合分析,或者仅仅只是为了追踪应用使用情况,而发出一个额外或者多余的调用。

9. 究竟如何命名?请认真思考!

命名反映了你赋予API的方法、对象、属性及参数,这也会极大地影响到使用API的人的理解方式。当创建API时,无论用户首先想到的是何种术语或用语,就其本身而言,它就非常具有吸引力。就如同所有代码一样,你使用它的很大一部分原因在于API如何被理解及其被期望的表现。如果名称起不好,就会让人非常困惑。困惑导致错误,错误导致bug,bug导致延迟及支持成本上升。因此,多花点时间在命名上吧!

10. 不要忘了你的隐私权保护政策及责任

如果你的应用需要捕获到用户数据或登陆到服务器并记录请求,那么你就必须制定一个隐私权保护政策,来向用户详细介绍你是如何使用这些数据信息的。此外,你还必须思考如何存储及保护这些数据,尤其是如果它是属于个人信息,或者与儿童相关,更需要慎重。

(编译/唐小引 责编/张宁)

文章来源:DZone

宏碁:Windows8仍不成功 Chrome表现令人意外 雅虎发布Q4财报 净利润同比下滑8% 游戏机禁售令起风波,索尼任天堂股价大涨 国外开发者吐槽Facebook Android设计一例 Rovio转向发行业务 将发布新作Tiny Thief 上山下海 “硬汉”服务器无所不能 访金山云CTO杨刚:开源改进PK自主研发,技术驱动前行 苹果涉及色情问题,且进一步恶化 开源产品系列:面向组件的Web框架tapestry 360指责百度窃取用户信息 公布美杜莎插件技术分析 苹果正式发布iOS 6.1 最快本周日即可越狱 苹果高管:运行iOS 6的设备达3亿 Chrome OS 黑客大赛总奖金为314.159万美元 微软雷德蒙研究院副总裁:从计算研究到惊人发明 还驾驭不了4核? 别人已模拟出百万核心上的并行 RIM将网络直播BlackBerry 10发布会 解读TDD的五大误区 Amazon 2012财年Q4财报:电子书业务增长70% 从暴风影音CTO到创业者:画中画相机话中话 为什么Android应用开发总要比iOS晚? 传奇VC马克.安德雷森:未来的企业什么样? 呼吁国会通过“创业签证”:奥巴马助力美国招揽海外人才 Surface Pro最低1019美元,价值究竟如何? 搜狗号码通产品经理谈微创新 数据和运营更关键 在线推荐系统是如何进行工作的? 欧朋浏览器上架App Store,iOS生态真要变天? 苹果iOS 6.1地图搜索API将替代谷歌Places Oracle向开发者承诺 称尽快修复Java安全问题 日本:开发者与投资人都不容忽视的移动市场 Unity 3D引擎:十大最火的插件推荐 重塑品牌 RIM更名黑莓 发布BlackBerry 10移动操作系统及新手机 各位大哥帮帮我! 微软高手请进:CE下开发的三个(高难度)问题。。。 现在最好的jsp服务器是什么??最全面稳定的是哪一个?? 那位仁兄能给出一个24位bmp的图片转换成黑白的bmp图片的代码(别嫌分少啊) 对不住我的职业道德了…… 那位仁兄能给出一个24位bmp的图片转换成黑白的bmp图片的代码( 别嫌分少) 一个很菜的问题:怎样把文档类的数据传到CMainFrame 一个很有趣的问题,但是比较难哟,高手请进,一定给分!!!! 请问war是什么文件? 用LOTUS SCRIPT怎么样对修改一个文档中域的值?有没有代码? 各位,哪里有design patterns下载呀? 打印问题有谁能解决 十万火急,兄弟们过来帮帮忙........... 多字段模糊查询~~~谁会啊!! 高手请进 关于dialog和控件回车键消息处理的小问题 photoshop背景色的问题 虚函数能否做友元? const^:^ *********在dll文件中怎样打开一个窗口********* 自定义对话框 求解:怎样使用数据窗口能多页预览?有这项功能吗? 域的DNS有问题! 出现out of range 只是偶尔出现并不是经常出现?我的配置在里面 想问问大家关于微软认证的看法。 我有光驱上哪找 请问斑竹:c#中有类似exit(0)之类的函数吗, 请问谁有将可执行文件中的资源提取出来保存在新的rc文件中的源代码? PB数据库的连接分类解决问题? 数据窗口鼠标焦点为什么会遗失? 怎么用xp安装盘升级两千或酒吧下的wmp? 怎样得知ListBox中已经有多少项内容了? 看看大家关于微软认证的看法(只能给77,全给了) OFFICE XP以及金山词霸的漂亮菜单如何实现的??有源代码可以参考吗?? 谁能说一下"快手"的程序是怎么工作的啊 这个问题我都问了三遍了,还是没人帮忙回答一下? 这样怎么能不行了?怪了. ~散分哦~,哈~ 可怜的准初级程序员(水平的没过,竟然拿了个资历格的) 各位兄弟请了!一个远程接入问题邀请教各位~! 这个问题好象不难 如何在WIN NT4中安装、使用IIS4????? no pains,no gains. work for the beautiful girl here and for our beautiful life 各位大侠: 我是新手,有人能给我讲讲xmlspy吗?? win.ini与SYSTEM.INI的区别? Oracle 的产品真的很烂吗?参与者都有分! 现需开发一套对多个数据库(不是一个数据库中的多个表)进行操作的程序,使用BDE,请大家提建议 CPen的问题! 各位请教:我要通过电话线做多路远程接入但我不想用路由器 请问,使用ado控件的程序,考到其他机器上,除了数据库和应用程序之外,还需要拷贝什么文件? 部分技术超过OFFICE 国产软件挑战微软 什么是化工工艺设计 染布厂一般用什么化工原料我想向染布厂销售一些化工原料,请帮忙例举一些,包括水处理化工原料 下列结构属于细胞的是:A胶原纤维B神经纤维C肌纤维D胶原原纤维E网状纤维 怎样对环刚度试验机进行校正我要找一个人能对我们公司的环刚度试验机进行校正 涂层厂要用哪些化工原料 胶原纤维是细胞吗 制定阅读计划!求推荐,应该读哪些书?高一完分科,准备读文科,到假期了,想制定一套读书计划,应该读点什么书?不求多但求精!用于提高文学素养.5-10本 硬度 锌合金钢和玻璃钢哪个硬? 为什么肌纤维能称之为细胞? 有KY系列环刚度试验机详细介绍吗? PVC-U双壁波纹管标准是什么?PVC-U双壁波纹管目前有没有国家标准 肌纤维是细胞?如题 根据自己阅读的一本课外书,设计一张阅读卡,想一想哪些栏目是必须的.阅读记录卡姓名:何军晖 班级:七年五班书名:《三毛流浪记》 作者:张乐平内容摘要:阅读心得: 吹泡泡用的起泡剂是什么化工原料 污水处理氧化池细菌的培养办法.求具体操作规程被安排负责公司的污水处理,接触氧化池要培养细菌.本人一门外汉,第一次接触,没有头绪.我们污水处理的流程为:格栅井——调节池——厌氧 万能拉伸试验机、布氏硬度试验机、洛氏硬度试验机、金相显微镜价格分别是多少 哪种化工原料可以调制泡泡水 韧性造句(有弹性,不易折断),(坚韧的性格)越长越好20字以上 要进行化工工艺设计,其中工艺流程图,设备平面布置图,设备选型三项任务的要怎么安排(是先进行哪一项再到另一项),设备选型要给出设备的什么参数?(比如泵),我们还没学到,分配工作中,求回 化工原料在哪些行业用量较大,分别是哪些原料,主要是想问问化工原料的主要的使用行业和可以生产出的产品,分别会用到哪些化工原料~ 用 韧性(坚韧的性格) 造句! 化工工程设计的核心内容是化工工艺设计,工艺设计一般包括哪些内容? 怎样降低造纸厂AKD施胶剂的用量? 用韧性的不同意思造句 1.(有弹性,不易折断) 2.(坚韧的性格) 用韧性的不同意思造句 1.(有弹性,不易折断)2.(坚韧的性格) 请问下埋地排水用的PE双壁波纹管一个工地要选用S1级别和S2级别时要考虑的依据是什么呢我着有个工地用的是400大口径的S2级别的,我想是不是能用S1级别来代替呢?这样判定级别的选择呢? 双壁波纹管的米重的计算方法详细的双壁波纹管的米重计算方法,内壁占用的百分率的计算方法, 韧性(坚韧的性格)造句 波纹管分s1和s2是什么意思? 造纸厂污水处理菌种如何培养 橡胶的硬度怎样降 造纸用的化工原料有毒吗?应该去哪里检测 西安玻璃钢管道系列产品?比如玻璃钢缠绕管道,玻璃钢加沙管道,玻璃钢工艺管,那的好········· 根据括号中给出的不同词义造句.-------韧性(坚韧的性格)速度. 埋深为一米的PVC-U双壁波纹管应用S1型还是S2型更合理 玻璃钢管道如何安装? 污水处理厂的生物池有什么作用 pvc的s0,s1,s2, 胶原,胶原蛋白,胶原纤维有何区别联系? 请问污水处理厂超越管的作用,如何布置? 造纸需要那些化工原料?最好能写出化工原料名称,谢谢辛苦了. 造纸厂用什么化学试剂造纸厂一般都有用到什么化学试剂啊 请指教 污水处理厂和垃圾填买场的具体作用是什么!写个材料.涉及到污水处理和垃圾填埋!想知道这两个东西的具体作用是什么.!知道的告诉下.谢谢了 化工原料CMC在造纸中所起的作用 胶原纤维是什么啊? 污水处理厂生化是分为三级吗?每级的作用是什么? PE-RT管材的优点是什么 乒乓球冬天已爆裂是由于什么(硬度还是导热性)A.导电性B.硬度C.延展性D.导热性 能合成胶原纤维的细胞有( ) 求塑料管中PE管材所占比例 印刷厂需要用什么化工原料我想开印刷厂,请问要用些什么化工原料? 弹性纤维是什么?用它做的衣服好吗? 谁能给我介绍几本有关化学,英语的书? 所有的彩印厂都需要化工原料吗?用油墨印东西需要化工原料吗 弹性纤维是细胞么 英语翻译since the first publications of the periodic law,both by dimitri mendeleev and lothar meyer in the 1870s,there have been a large number of forms proposed for the periodic table.the version easiest to use and most closely related to the el hdpe双壁波纹管sn4什么意思 目前的化工废水处理工艺有哪些?请各位指教, 环刚度试验机常见故障有哪些? 一根6m的DN300的HDPE波纹管重量是多少? 化工污水处理后能养鱼吗?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn