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

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

VB利用API函数实现VB特殊窗体的两种方法 VB利用API函数实现无TittleBar窗体的移动 VB利用API在VB5.0中实现清除文档名 VB利用App.PrevInstance防止同一程序执行多次 VB判断应用程序是否仍在运行并设置焦点 巧用VISUAL BASIC的RND()函数 让你的程序不在任务栏中显示 -VB资料 VB如何不用API使文本框属性只读? VB如何从文件中提取图标 VB如何关闭/重新启动计算机? VB如何建立快捷方式? VB如何让窗口始终在最前面? VB如何使你的程序同文件扩展名建立关联? VB如何提高调用WINDOWS API函数编程技巧 VB如何为你的应用程序设置热键? VB如何隐藏鼠标指针 VB如何用api检查任务栏中有多少种输入法 VB如何在函数中传递数量不定的参数? VB使用 kb_event 函数模拟键盘操作 VB使用API获取颜色 VB使用标签控件调出浏览器 VB使用调用外部程序函数实现API函数高级功能 未公开API函数揭秘——通用对话框-VB资料 显示文件属性对话框-VB资料 VB用 API 打开打印对话框 VB用API函数改进ListView控件的显示效果 VB用API函数控制光驱的开关 VB用注册表保存数据(VB函数篇) 有关Tray系统盒的VB API函数 在VB中调用API函数动态改变及恢复屏幕设置 在VB中控制Ctrl+Del+Alt键 请教各位:用jsp中怎样知道用户浏览器的类型? 哪里有bmp文件格式的标准? 为什么sql server2000数据库里的数据在Win XP下不能显示中文啊? 回答出来给100分 在pb中用SetPicture(lb_image)当lb_image为空时picture的图片不变 急!!请问关于传递byte数组的问题 请教动态库的问题! 使用Delphi能够访问Windows2000 Active Directory? 请问在发邮件的时候怎么检查邮件地址真假!有无正确的发到! 简单之极的问题(两个,有关IE和IIS),但我还不会 那里有activethreed 3.0下载,快帮帮我呀! 开发OFFICE ADDIN 插件是否需要OFFICE SDK? 谁能给我一个用C++实现哈希表的例子? ◇◆◇上海有居住证的请进来拿分◇◆◇ 誰有SilverStream的中文資料,或哪有下載,謝謝. 在VB中如何显示声音VU强度的输出 How to install VB6.0 Enterprise in Windows NT workstation4.0+sp6? 想使用windump却总是说 error opening adapter 是什么意思?? 关于pb的一个问题 怎么控制Word为只读属性? 在VB中如何显示声音VU强度的输出 快来啊,怎么总是不行?帮帮忙把!!!!!!!!!!! 关于TreeView与数据库的问题? 如何找一份软件开发的工作 WorkThread和UserThread到底有什么区别? ASGLW进来 麻烦帮下忙,一个看上去好像很简单的问题,居然搞不出 在有系统分析员的情况下实践XP 请问各位,如何装ORCALE呀,我买了ORACALE8.05的光盘,装了一个晚上都不能装上?来者有分! 怎样隐藏datagrid中的一列? 我的程序员表妹照片-----------mm程序员 80分求助!滚动ScrollBox的Scrollbar,结束滚动时,可以触发什么事件?请高手帮忙! CGI漏洞部题! 怎样令自己的程序不在按Ctrl+Alt+Delete弹出的任务管理器中出现? 如何开发http://www.mobset.com/这样的手机应用程序? 求救! 数据库操作中,内存不能为读,怎么办? 使id号自动加1的方法?? 吸烟成瘾 如何调用com? 有这样的控件么? pb中如何连接局域网中的另一台电脑,并拷贝文件? 我要做毕业设计了,请大家给点建议吧!十万火急,十万火急! 请问,该程序段如何设置组合条件查询? 通信的同步与异步 TreeView中取得节点值时遇到问题!时间太紧了,请帮忙! 招聘上海java程序员 555~~~~~小猪妹我受气了~~刚才去打网络台球,有人骂我好难听的话~~我怎么报仇?? 求助! 十万火急!!!请各位帮忙 有关sql语句的问题,急,(sql = "SELECT id,title,addtime FROM news where special ='是'") 将自然数n接写在任何自然数右边,得到的数能被n整除.n是1~100的自然数,满足条件的自然数有几个?请写出算式 5÷7分之5-7分之5x5分之1= 形成东亚季风区的主要原因是A.海陆热力性质的差异 B.洋流的影响 C.终年受赤道气团控制 D.气压带和风带位置的季节性移动 1000以内的立方数急 请问梁实秋的放风筝的赏析请问谁有这篇文章的赏析啊?什么样的都行. 形成东亚季风区的主要原因是如题 A.海陆热力性质的差异 B.洋流的影响 C.终年受赤道气团控制 D.气压带和风带位置的季节性移动 梁实秋什么代 《钱》 梁实秋 赏析 求东亚各种气候类型分布!详细分布情况,有点急 已知关于x的方程ax+b=2(2x+7)+1的解为任意有理数,求a、b的值 关于梁实秋《鸟》的赏析最好能说出写作手法 东亚和东南亚两个地区以什么气候类型为主为什么这里的这种气候是世界最典型的? 已知命题甲:方程x ^2+y ^2/m=1表示焦点在y轴上的椭圆,命题乙:函数f(x)=4x ^3/3-2mx ^2+(4m-3)x-m=0在(-无穷,+无穷)上单调递增.若这两个命题中有且只有一个成立,试求实数m的取值范围. 已知方程mx²mx+2=0有两个实数根、则m的值为____ 东亚的大部分地区属于什么气候类型?这种气候对水稻栽培有何影响? 根号下cos^2x的导数 命题p“方程[(X^2)/M]+Y^2=1是焦点在X轴上的椭圆”,命题Q“不等式(4X^2)-4MX+4M-3大于0在R上恒成立”...命题p“方程[(X^2)/M]+Y^2=1是焦点在X轴上的椭圆”,命题Q“不等式(4X^2)-4MX+4M-3大于0在R上恒成立”, 已知双曲线C1:x2/a2-y2/b2的离心率为2,若抛物线C2:x2=2py的焦点到双曲线C1的渐近线的距离为2,若A,B是C2上两点且OA⊥OB,则直线AB与y轴的交点的纵坐标为A.8√3/3 B.16 c.8 D.16√3/3 y=根号下(3-2x)的导数怎么求? 梁实秋的风格梁实秋的作品是什么风格,现代人读了还有多大的意义么?有什么思想? 已知双曲线x2/a2-y2/b2=1(a>0 b>0)的离心率为2 若抛物线c2:X²=2py(p>0)的焦点到双曲线C1的渐近线的距已知双曲线x2/a2-y2/b2=1(a>0 b>0)的离心率为2 若抛物线c2:X²=2py(p>0)的焦点到双曲线C1的渐近 1.我国面积最大的盘地是A.塔里木盘地 B.准噶尔盘地C.柴达木盘地 D.四川盘地2.我国最大的天然林区是A.东北林区 B.西南林区C.东南林区 D.西北林区3.我国太阳能、地热能、水能都非常丰富的地 已知抛物线y^2=2px(p>0)于椭圆x^2/9+y^2/8=1 有公共焦点 求 抛物线方程 已知双曲线x2/a2-y2/b2=1与抛物线y2=8x有相同的焦点f,且该点到双曲线的渐近线距离为1则双曲线的方程为 求地理高手来解答初二水平的地理题目啊,谢谢~第2小题:南北各异的自然环境. 梁实秋 男人我要内容 抛物线y2=2px焦点F恰好是双曲线x2/a2-y2/b2=1的右焦点,且双曲线过点(3a2/p,2b2/p),则该双曲线的渐近线方程 8.新疆瓜果特别甜的主要原因是( C )A.植物生长期长,夏季气温高,日照充足 B.土壤肥沃 C.云量少,光照强,气温日较差大 D.气温低,风力强 22.傣族聚居在云南南部,住竹楼,着短衣长裙是因为要 若有理数A满足|A|=-A,则下列结论正确的是( )A.a≥0 B.a≤0 Ca 如果方程mx²+2x+1=0有两个不相等的实数根,则m______ 若x=1是关于x的方程ax=b(b≠0)的解,试求下列两式的值,(1)a-b(2)(a×b分之1)2013的次方 a为有理数,下列结论正确的是()A.a²>0 B.a²+1>0 C./a/>0 D./a+1/>0 已知椭圆D:x*2\50+y*2\25=1与圆M:x*2+(y-5)*2=9,双曲线G与椭圆D有相同焦点,它的两条渐近线恰好与圆M相切,求双曲线G的方程 如果方程①ax的2次方-bx-6=0与方程②ax的2次方+2bx-15=0有一个公共跟是3,求A,B的值,并求方程的另一个根 若a是有理数,下列结论中正确的是A、a表示正有理数 B、-a表示负有理数C、a与-a必有一个负有理数D、a与-a互为相反数 x-5=6 -y=0.6 0.3x=45 三分之一y=-2 3x+1=x+9 2-四分之三x=x-5=6 -y=0.6 0.3x=45 三分之一y=-2 3x+1=x+9 2-四分之三x=2x+5 求解啊!哥哥姐姐,叔叔阿姨们! N为自然数100以内的整数,那么2n-1能被7整除的n有几个?. 以知a是任意有理数,下面结论正确的个数是( ) A0 B1 C 2 D3 3x-y=-1,x+2y=9用消元法来做 n为100以内的自然数,那么能令2的n次方,再减一,{(2的n次)-1 } 被7整除的n有多少个? a为任意有理数,若|a|>-a,则下列结论正确……A.a>0 B.a<0 C.a≤0 D.a≥0 过椭圆x2/a2+y2/b2=1的焦点垂直于X轴的弦长为a/2,则双曲线x2/a2-y2/b2=1的离心率为 n为100以内的自然数,那么能令2n-1被7整除的n有多少个?A.32 B.33 C.34 D.35 合并同类项:(1)3x²-1-2x-5+3x-x²; 2x(二分之一x-1)-3x(三分之一x+三分之二) 数学题用因式分解法解题 2X²-3X-3/2=0 16X²-24X+9=0 X²-4倍根号2×X+9=0 3X²数学题用因式分解法解题2X²-3X-3/2=0 16X²-24X+9=0 X²-4倍根号2×X+9=0 3X²+10=2X²+8X 3X²-12X= -12 4X² 关于x的方程9x-5=ax+2的解为整数,求满足条件的所整数a的值 关于x的方程(m+1)x^2+2mx-3=0有两个实数根,则m为? X/3=Y/2=Z/5,则分式xy+xz+yz/x^2+y^2+z^2= 当a取什么整数时+关于x的方程9x-3=ax+11的解是负整数 1、-2x(2x平方-3x-1) 2、(-二分之一x+三分之一y-十二分之五)(-6xy)3、-2xy(二分之一x-2y) 4、(27a三次方-15a平方+6a)·(-3a) 已知x+y分之xy=4分之1,x+z分之xz=5分之1,z+y分之yz=6分之一,求分式xy+xz+yz分之xyz的值 我国人口的突出特点是:A.是世界上平均人口密度最大的国家之一B.人口基数大,人口增长快C.人口问题多,人口压力大D.交通拥挤,住房紧张注意:突出突出突出 M为何值是,方程(m-1)x*2+2mx+m+3=0只有一个实数根 1.新建楼房的供电线路已经不再使用保险丝,而用带有保险装置的( )代替.当电流过大时,开关中的( )起作用,式开关断开,切断电路.2.某家用电能表上标有“220V 5A 3000r/kW.h”的字样,当家中用 为什么东亚是世界季风最典型的地方? xy/x+y=1,yz/y+z=2,xz/x+z=3求x,y重在过程 1.某地夏至日和冬至日的正午太阳高度相等,该地位于(正午太阳高度)A.赤道 B.北回归线 C.南回归线 D.极圈2.当北半球春分时,身高相等的4个同学分别站在下列四个不同的地点,正午时他们谁的 东亚季风影响哪些地区?请勿乱说!请具体说明!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘