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

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

用Delphi实现超级链接 用Delphi实现子目录级的文件查询 用Delphi自制英语复读机 用DEPHI为应用软件建立注册机制-Delphi资料 优化delphi5.0秘籍大曝光 元件的handle的建立-Delphi资料 元件卷动的改进-Delphi资料 在delhpi程序中获取网络资源信息-Delphi资料 在Delphi中操作快捷方式 在DLL中实现文件的拷贝-Delphi资料 在Report Builder中增加自定义函数-Delphi资料 在Win2000 Beta下安装Delphi 在Word插入字符-Delphi资料 注册表中几个对编程特别有用的地方-Delphi资料 资源文件在DELPHI中的使用 自制替换指定串函数-Delphi资料 API函数快速入门API函数简介-VB资料 API函数快速入门怎样在VB中声明和使用API函数 API函数在VB开发中的应用 API函数在VB中的应用 API实现完美的图片出现效果-VB资料 ListView控件特效-VB资料 Office 95 API 的企业开发者指南-VB资料 SENDMESSAGE函数巧应用 -VB资料 VB 与Windows API 讲座(五) VB5 未公开的函数 VB5.0与Windows API 间的呼叫技巧 VB5中回调函数的使用方法 VB的API编程精粹(二) VB的API编程精粹(一) VB调用API函数技巧快速选择全部项目 在哪里可以找到关于sybase的资料 哪位仁兄知道如何打包delphi开发的sybase客户程序,最高78分奉送 一个关于OnDraw()的重绘问题,急急急急急急急! 新手的问题! dll调问题???VB调用VC++的DLL需要返回值时,DLL如何定义?VB调用函数如何定义??? 各位大虾 谁能提供视频采集卡的原代码,必须要CB的,300分 在堆(heap)上与在栈(stack)上建立的对象有什么区别? 一个问题,在做元件时怎样建立TdateTimePicker 给大家看看我弟弟给我的信 求助,标题栏为“The police are investigating the robbery-"的是什么程序? 谁能将.CPP文件的代码翻译成DELPHI语言?? 有关于FLASH5.0的问题!!!请各位大吓指点! 一个问题,怎样在PC:PageControl上增加TabSheet1,TabSheet1,TabSheet1…. 标题栏为“The police are investigating the robbery-"的是什么程序? 一个弱弱的问题 一个问题,建立的 FB: TBevel没显示,好象根本没建立一样。 如何在 MDI CLIENT 中添加快捷方式??谢谢!! 55分,如何映射控件中子控件的消息? 如何选择书 关于文献数据库的一个问题-如何把一个字段和一个文件关联起来? 所有喜欢到水园来逛逛,但是从不回帖子或很少回帖子的人进来签到~~~~ 谁来救救我呀,我好惨呀。。。。 如何通过VC编程,随时关闭网络端口 诚寻对嵌入式linux感兴趣的网友 今天临走前,再灌一桶酒! 急!!!哪里可以下载到制作工具栏时用到的位图呀? 太原的在哪能买到程序员杂志 我的qq:10120129 谁找我??? xml 高手帮帮我,为什么我下面的文件,在IE5.0中什么也没有?? 请问高手:在uml类图中如何用关系表示一个实体类和一个接口间的关系。 Cathy进来~~ 请问高手们一个Delphi的一个应该是比较底层的东西。 mimi大酒店正式開業﹗先進來的有分啊﹗ 哪个高手完整地讲讲OpenWith菜单项的调用方法和函数等 关于非模态对话框中使用UpdateData(FALSE)函数的问题,朋友,帮个忙好吗? “记事本”小问题,大逻辑.大虾们,照顾照顾小弟呗. Linux下配置ISDN--期待所有的Linux高手到来?? 我是女生,哈哈 急,怎么样在打印表格时使较长的字段分两行显示,并字体变小。 在VB里做的用户控件为什么在VC不能调用啊! 不服不行(真没辙了)[不够可在加200分] 我的代理怎么了? 寻找能显示CAD图纸的delphi控件 偶要给lastlove(☆☆☆☆☆robin★★★★★)放高利贷了! 哪位做过读取网卡地址的动态链接库? c++builder与sql server 2000的sql语言兼容性问题 为什么TWaitThread的帮助在help里找不到? 有关WIN2K策略的设置? TREEVIEW中如何打印结构树? 急急急!opensheet(w_child,w_main,2,Original!)不好使了?为啥? 物理和智商有关系么,为什么有些女生物理好但是数学不好呢 一个如图所示的不规则形铁片,其缺口边界是口宽4分米,深2分米(顶点至两端点A,B所在直线的距离)的抛物线的一部分,先要将其缺口边界裁剪为等腰梯形.(1)若保持其缺口宽度不变,求裁剪 如图,已知正方形ABCD边长为1cm,点E在对角线BD上,BE=BC,P是CE上一动点,PF⊥BD,PG⊥BC,PF+PG的值为 测智力如何测? 高中物理学不好是不是和智商有关系?是或者不是.不要听什么假安慰的话那有没有改进的方法? 求解啊 数学大神速度来 钱学森的数学智力测试题?8————————》99 11———————》126 26———————》26115———————》? 帮忙找一些物理方面的智力问答题,RT要的,至少20道吧…… 数学第15,16题. (初二英语智力测试题) 具体地说说为什么!At a school outing 81℅ of the boys lost a shoe,82℅ of the boys lost a sock,77℅ of the boys a cap and 68℅ of the boys lost a bag.What's the least percentage who lost all 4 things? 为什么1+1+2 不等于三谢谢了, 16题, 狂风暴雨神倒颠打一生肖 2/(√3-1)等于多少谢谢了, 第15,16题 求神级智商解答! (2)(3)求大神 16题 神起的红色风暴和神话的白色风暴是怎么一回事.?什么叫不要成为第2个ANDY.?SM公司打过艺人么,? 数学大神请入3+6+9+……+3n=? 数学习题,必好评,15,16 小明和小华一起做功课,小明对小华说:“我出一道题给你做做:一个多边形各内角都等于72°,求这个多角形的边数.”小华想了想,答不上,后来他对小明说:“我也考考你:一个凸四边形的四 1加1在什么时后会等于3大神们帮帮忙 第15,16两题, 有1、2、3、4四个数 2 的出现几率是1的一半、3的出现几率是2的一半、4的出现几率是3的一半.1、2、3、4 的出现几率加一起等于1(100%)那么1、2、3、4的出现几率各是多少 公式是什么?同理5个 一加一可以不等于二,一加一可以等于三吗? 15、16两题 我的神 我的神把两个式子相加得到:a3+a7-a10+a11-a4=12=a3+a11-(a10+a4)+a7=12 因为a3+a11=a10+a4所以 要是-(a10+a4)+ a3+a11那就=0了 所以就是0+a7=12 然后…… 然后就求出来了.问;为什么不能用3+7-10=0 11-4-7 求大神解这两道题,原谅我数学不好…详细请看图 15和16两题 龟与神赛跑的数学问题叫什么之论?龟与神赛跑,神先让龟跑一段距离,然后神再追.问神能否追上.答案是实际神能追上,理论追不上龟. 寻极度无聊IQ题必须系搞笑的!例如铁甲无敌奖门人之类嘎 10个以上才要!多1个+给1分 15和16两题谢谢 神才能做的高一数学难题数列{10^(n/11)}前n项之积大于10^5的最小正整数n=?(最好有过程,感激不尽!) 大神救我QAQ[请原谅我这捉鸡的智商,诶我居然没有把图放上去.. 求15,16两题, we want to know in____ case people's hidden consciousness can be developedA which B that C whose D what为什么不选A啊 2 Albert Einstein was the first man_____the great amount of energy locked in theatomA to realize B realize C realized D having 极度无聊IQ题:有一日,小明去饮酒,饮到好夜,于是就在沙发睡觉.第二日小明妈妈就报警,这是为什么? 考研数学课本重要还是习题册重要 CAD请问这个几何图形怎么做啊,想了几天了,求大神们回答,外形差不多这样,已知道尺寸. 求 的一道超级难题 智商高的来做一做 阅读短文 回答问题(18分)松树与紫藤松树与紫藤同在山坡下生长,一天,紫藤以鄙视的口气说:“小松鼠,你怎么长成这个样子,像一根木桩,孤零零的,多 关于2009年数学一考研真题第17题求助,数一17题第二问说求体积,那个就是用锥体的体积减去椭球体的一部分,这部分的求法很多,我是想用二重积分曲顶柱体的体积算法,即把x解出来,然后做积分, 英语翻译 2.06千米为什么等于2千米60米?为什么2.06千米等于2千米60米? 如图,第一步,和第二步的依据是什么啊?好像没有相应的定理吧? 12个9加减乘除等于1212,急…… 1+1为啥等于2? 10----16题怎么写? 1-3-7-5加减乘除怎么得24? 1+1会等于2吗?求大神帮助 判断题:1.如果甲数的三分之二大于乙数的四分之三(甲乙都不等于0),那么甲数小于乙数.(为什么错?)2.体积相等的两个长方体,他们的表面一定相等.为什么错?1.a是一个大于0,而不大于1的数, 分数加减乘除法的意义和整数加减乘除法的意义有什么不同问答题 观察下列算式:2的一次方=2,2的2次方=4,2的三次方=8...用你所发现的规律写出2的2012次方的个位数字是多少? ..数学14、15、16题求讲解 将八个8用加减乘除等运算符连起来,怎么得到1000? 用适当的方法做, 过程完整点 一次数学小测验中,有一道这样的填空题:0.3= ————%.小丽在横线上填了30%,而老师却判小丽填错了,小丽不服,去找老师问个究竟.请聪明的你评评小丽答对了吗,为什么? 我智商130左右,但为什么还是学不好数学和物理啊.做了许多测试,智商在130左右.其中一种测试中显示我右脑智商70+,左脑智商50+.数学和物理是用的哪个脑? 设公差不为0的等差数列an的首项为1,且a6=a2^2,求数列an的通项公式,若bn满足bn=nan+5n,求{1/bn}的前n项和Tn 这题怎么写、、求数学大神
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn