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

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

移动周报:无需编程,分秒钟DIY一个移动网站 抢占先机:豌豆荚发布视频搜索产品 Cloud-Connect大会Day1:OCP与SwiftStack 云智能手机,将会很快威胁到Android和iPhone? 直接拿来用!超实用的Java数组技巧攻略 腾讯云俱乐部上海站:电商如何利用云提高核心竞争力 iOS开发者必备:六大图片、图标处理类工具 腾讯向搜狗注资4.48亿美金持股36.5% 推荐五款流行的JavaScript模板引擎 为何人人都将成为程序员?看32位美国顶尖精英的说法! MySQL再度失势:继维基百科之后,Google也迁移到了MariaDB Werner Vogels:亚马逊热爱艺术的CTO Jolla宣布Sailfish OS兼容Android手机硬件和应用 为什么项目估算偏差如此之大? Cloud Connect大会Day2:开源与云数据中心 CTO俱乐部第110期下午茶:利用麦肯锡7S模型构建管理框架 跨平台打造移动原生应用的10大武器 iOS与Android本地数据库新选择:使用Objective-C和Java编写 Cloud Connect大会day3:Intel的大数据与Metacloud私有云 农民也玩数据挖掘:基于物联网的高端种菜模式 前谷歌Android开源项目主管Queru加盟雅虎 Windows 8.1售价出来了!分别是119.99美元、199.99美元 对AngularJS进行性能调优的7个建议 为什么说UX设计师的黄金时代已来临? 豌豆荚:“应用内搜索”是打通移动互联网最具竞争力的入口 苹果发布会后的冷思考,64位芯片为开发者带来了什么? 中兴Geek评测:高性价比的英特尔处理器智能机 SAE的资源、安全隔离与Container 平板电脑悬了 Phablets或成为未来移动设备的主流 拿什么拯救你:黑莓今年将裁员4500人 推荐10款免费的在线UI测试工具 看看吧,想改變這种現象!!<marquee>能移動內容,但它移動時有空白(要等全移完后才又重新移)能否不要這中間的空隙。 那里有 netapi32.dll 中所有的函数及结构体的Delphi版定义? 在ASP里怎么能才让字符的ASC2码值加一。比如a加一之后等于b 谁有ehlib和fastreport的使用资料,哪下载??? 有关排序的问题? 高分相送!,求地税信息化方案 一个java程序,怎么写不进去?等待…… SOS!!! 是显卡的问题吗? 挂接的Fat32文件系统文件名为乱码 Linux 下的 中文输入法 十分奇怪的问题,win2000下编辑框粘贴文本出错。 为什么我的iis打不开了?(在线等待) win2000下 “内存指令不能读” 的错误怎么解决???? 问用ASP+SQL SERVER的朋友一个问题。在线等待。。 Web Services 的客户端和服务器能不能双向通信 98里的IIS服务在哪里停掉! 怎样在同一系统中既做服务器又作客户端?谢谢! 喜欢的女孩,交往半年后才知道大我2岁,郁闷!大家说该怎么办??? 怎么样用create函数创建一个窗口,用来显示提示信息 有两天没加可用分了,大家是没感觉,还是无所谓?我要饿死了,救命……来者有分! 用PHP如何在取得了属性drwxrwxrwx之后,判断是否为可删除? 在VC中,用quickwatch看vector变量时,怎么只能看到装在容器里的第一个变量 状态栏问题 如何使鼠标移到输入框上,输入框里面的字就会成 被选择 状态? 五百里加急(分不够另给) 与 硬件 有关 怎样配置root启动菜单~???~ [求助][急]关于SQL语句优化 高分求IBM WebSphere Application Server 高级版! 经常上csdn上的哥们把照片亮出来啊:) 在asp.net(用vb)中怎么连接ORACLE数据库? 从页面A转到页面B后,再从B转到A,怎样使A中控件的显示仍保持?即类似注册失败时返回,其他资料仍存在,仅密码需重输。 关于调色板管理器和动画的问题 请问如何使文本框处于选择状态(蓝底白字) J2EE 1.4 beat发布了。 找沈阳教VB的老师 MDI框架中如何判断是否有已经打开的窗口? 怎么给分呀? CString 问题 www.linuxforum.net怎么上不去了? 急!!!!在COM中的初级数据类型问题! oracle数据库连接问题!!! 有没有DirectX 8.1 SDK可下载! 急!在线等待,解决就结帐---》关于菜单效果的 请教高手,如何在VC里面对MSFlexGrid控件进行输入,请稍微详细地叙述一下。拜谢。 ASP团队开发需要什么? 有没有DirectX 8.1 SDK可下载! 请问各位大侠有Java 2 的API 中文说明文档吗在下先谢了 shellexecute 和winexec 有什么区别? ★★★为什么我添加一个BUTTON后双击后提示不能加入成员函数?★★★ 怎么向窗口发送一个虚拟键 (dos窗口 也就是dos下的exe文件) Please c____your answer carefully when you take an exam. 英文小说一般是用什么时态的?看过好多英文小说都是用过去式来写的,但是有人说也可以用现在时写小说.那英文小说一般用什么时态来写?作文呢?能说一下用这些时态的原因那就更好了. 背完新概念英语3和4册能否听得懂cctv9的英文我是指如果我背到滚瓜烂熟的程度! Please锛匡伎when you cross the road A听take care of听 B听care for C carefully D take care答案为什么选D而不选C呢?请解释详细一点! 英语翻译冒险型叙事性的小说,以第一人称叙述的.不是倒叙.唔 就是鬼吹灯啦 学完【新版】新概念英语第一册,基本口语会讲吗? If you have a ( ) to learn in America,please take it 动词在句首,什么情况加ing,什么时候变为不定时或不变第一种情况加ing是动名词,第二种情况动词非谓语形式变为 to do,第三种情况不变,是祈使句.都给我举一些例子,我需要例句. 伤感的反义词是什么 Miss Pink is my English teacher .改成一般疑问句, 动词放句首什么时候要加ing?什么时候不用? 伤感的反义词 grow 的三单:过去式:现在分词: 为什么句首动词加ing He asked me where Mike is from?where在从句中作状语吗?如果是,那么Mike is from怎么不完整?或者where是作介词from的宾语吗?关系副词除了在从句中作状语外难道还可以作宾语吗? grow过去式和过去分词 Miss Black is_______(me,my) brother,s math teacher.怎么答? where is michael from?的同义句 1)The clock is on the table .(用There be 句型改写)2)The soldiers are not afraid .(改肯定句,意思不变)3)The boy is drawing a horse .(改为一般时态)4)Some duckings swim in the poud .(改为现在进行时)5)The mouse is running in fron 动词作句首时有两种形式 但在哪种情况下 只用to加动词或动词ing He asked me where Mike is?where Mike is from?where在从句中做状语吗?如是那后面句子怎么不完整? 如何评价英国1867年的议会改革? grow的过去式和过去分词 写问句:1.They went to Englang by plane,2.No,Miss Li is a math teacher.3.He is 80kg.下还4.No,my mother went to Henan by bus.5.They are going to the library with her mom at 9a.m.5.Lt's rainy today. Miss Liu is a teacher.改为否定句,并作肯定回答.改为一般疑问句,并作否定回答 美味可乐鸡翅怎么做好吃 美味可乐鸡翅最正宗的做法 is because English is useful______.A.why we study it hard B.that we study it hardC.what we study hard D.which we study hard Miss Li is my teacher.改为一般疑问句 where.is.my.yellow.marker? 急求一篇题目为History is a useful subject in school英语文章我要参加枫叶杯的比赛,麻烦各位帮我寻摸一篇文章,希望能朗朗上口,好背诵,也不要太简单,我是初一的,2至3分钟左右吧,分可以再加我很着 what happened_your car?填哪个介词或副词 Where is the crayon?的中文是什么?xcbvhjcb To learn English is important and useful. 公共英语三级报名时间2014,和2015 where,is,the,cinema汉语意思是什么? where is she?j what do you often say to your father____ Father s Day用合适的介词或副词填空如题 so they need the ( )sleeping time. Where is she? 用介词或副词填空 What happened ------him last night an alarm clock is on the table.改为复数句格式是这样的:____alarm____ ____ on the table. where is 可乐鸡翅有哪些营养 我看的英文电影比你多,所以我的听力比你好些.英语翻译 想提高英语听力,看英语电影要不要字幕好?我想通过看英语电影,《走遍美国》等来提高英语听力.但我不知道要不要字幕好.是不要字幕,还是只要英语字幕,还是中英一起呢? and,dresser,alarm,is,my,on,clock连词成句 怎么练好英语听力?英文电影有用吗?看英文的电影有多大用处?活着说有没有用?如果想在三个月内把听力由一点基础到完全听懂日常对话,每天用到听力上的时间要多少? 被动语态:he said he might repair my watch this afternoon,so ithe said he might repair my watch this afternoon,so it (might have been repaired) if I go in on my way home early this evening.为什么括号中不是用might be repaired ______(介词)the corner of the street she came up to me (用汉语翻译) the room is ___ (介词) fire where is my mind 歌词中文意思 高尔基名言友谊就是力量急 介词填空 什么the money ,she bought a new coat 什么her father where is my knife 翻译成中文 真诚的,十分理智的友谊是人生无价之宝这句名言是什么意思 she said goodbye to her family ( )tears( )her eyes 用介词填空 where is my working time? 新概念英语学完能流利的口语对话吗? she carried a book ____her head .介词填空 分析英语小说应该用什么时态如题,我分析的小说本身是用一般过去式写成的,我叙述其中的内容的时候应该是用什么时态呢? 怎样学好新概念英语?出来工作已有一段时间了,由于工作要求想提高一下英语,请问各位大侠,如何才能达到自己想要的水平.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘