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

程序员心髓:移动应用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

少年才俊:看IT界8个不到20岁的科技公司创始人 Oracle与Freescale展开深度合作,Java或将一统物联网? 探秘Google新搜索引擎算法Hummingbird的16个疑惑 如何在开发项目里进行自我激励! 或许很受用:苹果、谷歌和亚马逊等公司的14个怪异面试题 12款不容错过的新款jQuery插件 技术开发者如何看实时Web App开发框架? 高薪技术排行:大数据居首,苹果相关次之,Java、C等相去甚远 谷歌开发网络跟踪新技术:AdID将取代第三方Cookie 穿在脚上的苹果?苹果聘用Nike设计主管Ben Shaffer 七款Debug工具推荐:iOS开发必备的调试利器 六年亲历,见证中国大数据技术与应用时代的到来 Mailbox:日支撑过亿信息数据库的性能调优及集群迁移 PayPal前CTO 在美国改变世界的乌克兰犹太人 放弃Bootstrap&Foundation,迎接Semantic UI? 一键分享:iOS版Google+发布SDK InMobi杨娟:中国移动游戏如何挑战全球? Adobe再遭APT攻击:数十G源代码及290万用户信息失窃 程序员,如何在工作中崭露头角? 国内外三个不同领域巨头分享的Redis实战经验及使用场景 这是一场潜在的战争:谷歌与Facebook、苹果在搜索上的博弈 设计新闻类网站需要注意的关键点:移动友好、宽带…… 直接开始用:5个免费的在线思维组织工具 招聘开发者常见的九大误区 开源影响销售,维护赞助商? 盘点黑客攻击途径:最常用的7个策略及简单的防护方法 专访AngularJS框架创始人Misko Hevery:让Web开发更便捷 果粉的又一个节日:新iPad或于10月22日发布 新车间李大维:到集装箱里来看创客嘉年华 亚马逊推“登录与支付”功能 直接冲击PayPal Google编程之夏新里程碑:5000万行源代码 8500名学生开发者 再问一个有关电脑上发传真的问题 DataGrid删除,对话框问题 怎么检查当前的XML文件是否服合相应的DTD标准? 问题代码,请指出 progressBar 怎么使用? 在linux下调试时,session出了问题!急!在线等待! 数据窗口里有一个子数据窗口,初始时,如何使子数据窗口选择某一行 线程传递消息有时出现乱码 如何随机生成6位密码,但不能有重复 如何在邮件的信头立加入自己喜欢的图片??谢谢 请问:为什么可以给一般对话框上的按钮添加位图,在CDialogBar上却不行?如何在CDialogBar上的按钮上显示位图?谢谢回复。 救命!在线等!再发。 怎末实现 统计图片的点击率??? 在线等待,解决即给分!!! 求助!连接数据库问题? VC.NET和VC6.0的语法差别大吗? 图像处理和计算机视觉方面有什么牛公司嘛? 高分求服务器c#向客户端javascript传递数据的各种不同方法!!! 用过C196开发196KC/KB的请进,谢谢 我用MFC编写了一个ActiveX控件,如何实现安全接口? 如何实现 XP 中目录窗口左边那种菜单 有关界面设计的两个问题? drawString时怎样规定一个区域,在这个区域内的文字显示,超出的不显示 急!在线等!Excel文件导入的问题。找不到可安装的ISAM 结识搞PHP的朋友 关于cell组件 郁闷当中,谁能给个用vb做DLL然后在DLL中增加数据库记录,在asp调用的例子。 singleton模式实现的问题 100分 谁讲一下定点数和浮点数的区别 急急急.请各位大虾帮帮忙啊! 請問語句的意思,謝謝 (Oracle8i)以SYSMAN登录控制台 斑竹9我! 求教高手!!!TEXTBOX与DATAGRID的问题 求助!关于用74LS181模拟8位机的资料!(散分啦,小弟急用啊!) 我的WINDOWS2003的DIRECTX 3D功能用不了,为什么? 如何用命令来修改设置计算机的ip,网关和dns等内容 不知道到那里问,借个人气了 托架的图标 散分! 如何建立一个这样的数据窗口? 上次未解决的问题(附源程序,及时结贴)(输入地址时http://ip/default.asp能正常使用,但是用http://ip则只能显示首页) 这个分页查询的SQL语句有什么问题?高分求教!!! 怎样求一个集合的子集? 我应该怎么做(项目经理请进,至少代表全国大部分公司的问题),一个年轻软件开发人员的问题 zzzzzzzzzzzzzzzzzzzz 高手指点迷津,如何更新数据库里的image字段 算法问题,再请教各位高手! 急急急,有关classpath 急!如何把picturebox中的内容保存成图片呢! Web Service中怎样验证身份? Web Service性能测试,欢迎评论,来者有分! 功率是什么意思 寸天厘地是什么意思 明代有哪些运用火器射杀使用冷兵器的著名战役 儿童误食化学染料,有什么反应后果 怎么背化工设备图纸 项脊轩志是高中课本苏教版的必修几啊急················ 吾视其辙乱,望其旗靡,故逐之.中之的意思 阅读化工设备图的一般步骤和方法? 静电接地跟避雷针的作用有什么不同? 吾视其辄乱,望其旗靡 这仨字咋读? 苏教版高中语文书必修五《项脊轩志》后面一篇文言文是什么啊?书忘记带回来了..ps:《长亭送别》 也算..请告诉我后面一篇文言文是啥=-= 视其辙乱,其的单解 求 凤栖梧 词,谢谢 北京特种作业操作证查询我把操作证号忘了,请问怎么找回? 吾视其辙乱,望其旗靡,故逐之的"故"是什么意思? 请问凤栖梧 柳永的那首词中,“强乐还无味”的“乐”和“还”怎么念?如题. 特种作业操作证查询塔吊证号T370421197003032913是真的假的~急 吾视其辙乱,望其旗靡,故逐之是什麽意思? 与 柳永凤栖梧 类似的词 蝴蝶怎么折 纸蝴蝶的简单折法图解 密度为2.7的是什么 生命诚可贵,爱情价更高,若为自由身两者皆可抛. 空调达到什么什么负荷时压缩机启动自动保护 风靡全球的十五个玩具是什么? 凤栖梧,栖是读qi 还是xi 病人右拇指感染,从左手背注入抗生素,经哪些途径到达病灶? 求高一人教物理一二章的公式和概念 2009风靡全球的第一首歌是什么 光合作用的实质是氧化反应还是还原反应? 氯化钙和硝酸钡反应吗 30吨密度为8.6的柴油,2吨密度为7.6的柴油,混合后密度是多少 隔着炉火焰上方看物体为什么晃动 一颗手榴弹能释放多少能量能有多少焦耳 风靡全球什么意思 为什么在火焰上方看物体会晃动?如题 麻烦回答下,要准确点的 一个10kg的煤气罐装满煤气后爆炸威力大概相当于几颗手榴弹 氢氧化镁中镁元素与氧元素质量比为 氧化还原反应的本质 是不是有氧化反应就会有还原反应 靡是读什么音? 靡有朝矣是什么意思? 手机贴钢化膜怎么贴啊 问一下靡读啥 靡有朝矣 前一句是什么 扣腚是什么意思 诗经.采薇中 靡室靡家 靡读第几声 甲紫溶液可直接涂于患处吗?如题! 从冷兵器到火器,这个进程对文明的发展有什么影响?(积极的) 靡室劳矣 靡怎么读 电的传播一定要介质吗?那么真空就是100%绝缘咯? “扎你腚”是啥意思 抓独角仙义乌有独角仙抓吗?哪有? “席天卷地”的“席”是什么意思 母联开关是怎么切换电源的啊? 独角仙的活动特点,1 请问“日色最慢的时候”表达出什么意思?女生好像已有男友,一晚,另一男生遇到这对情侣,当即跑开了.后来女生写道“相逢不晚为何匆匆”.数日后男生回答道“为何不晚匆匆相逢”.女生回答 电源无缝切换开关(装置)和电源互投开关(装置)的区别如题请专家解答 如右图,一带电液滴在重力场和水平方向匀强电场的作用下,从静止开始由b沿直线运动到d,且bd与竖直方向所夹的锐角为45°,则下列结论正确的是:A.此液滴带负电        求大家给我几张化工设备图我参考一下?我需要几张化工设备图,用auto cad 画的那种. 有没有一个电源进,两个电源出的切换开关.打算在一条3*35+1*16平方的铜芯电缆上,安装一个一进二出的切换开关来控制两路机子的工作,2个出线的电缆也是3*35+1*16平方,分别都引到225A的塑壳断路 医改网站技术问题百出 奥巴马上教堂也麦当劳与四十年“老伙伴”亨氏番茄酱分美国旧金山湾区万圣节前多起驾车枪击 美国共和党参议员计划推迟叶伦的美联储印度发生连环爆炸 致5人死亡25人受格鲁吉亚总统选举开始 共有23人参加路透社:美联储不会再扮鬼吓人美国广播公司高管就“杀光中国人”视频南京一处工地往长江里大量排污 附近有中央巡视组有九种主要工作方式 不查办奶粉进药店换汤还需换药 产地太模糊监国考报名审核工作全部结束 平均77人教师因婆婆不拆迁调岗至拆迁部 称曾被北京被护栏卡脖女已离世 家属看过监控英国Siri先生露真容 本人并不知情网传不孝七宗罪 不要的旧物给父母入选朝鲜将向意大利和西班牙派31名足球留美“情报器”失控威胁全球 奥巴马或成安倍要当亚洲反华“舵手” 借阅兵喊展美媒:安倍讲话相当于给中国人“当面一安倍:为世界贡献途径之一是在亚洲抗衡抵押五羊邨一地块 东华实业拟贷款5亿“我是高中生,胜过研究生”有人挟猪要价 有人帮忙寻找市儿童福利会与潮州商会慰问重症儿童“海口站”改“张槎站”有听街坊声音吗皇冠购20盒以上可送货上门“买”房20年 未办理过户三水 结伙抢劫 一月捅伤数人突发事件信息发布仍有改善空间新通教育迁址至中核大厦赴港看宫崎骏手稿罗湖政府采购试行“网购”南海怡丰城将推出儿童节活动美国EB 5要进入“收获期”了?吴杭民:“二政府”倚仗的是政府权力“中国民办教育博物馆”开馆仪式5月2这趟地铁载满幸福赵尔迪:新东方是一辆高速行驶的列车,坪山新地标公开招标香港国际古玩展 价值90万展品失窃男子遭割喉 初步排除他杀
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘