设计好的API是一项繁复的工做,可是优秀的设计是能够经过人为规划实现的,在本文中,咱们将研究什么是好的设计以及如何在开发过程当中实现它,还将介绍API设计的三个重要阶段:草图绘制,原型设计和交付实施,最后分享一些让工做更高效的工具。
在开始设计API以前,先要了解其目的。从以前到你如今为何须要构建API 。了解目的能让你更好的遵循开发方向,不至于走偏。不过,定义目的只是第一步,真正的诀窍是在实施过程当中作出良好的设计决策。后端
做为API设计人员,咱们作出的每项决策都会对产品的成功产生影响。大的决策例如API传输协议,信息格式等。除此以外还有一些与插件,名称,接口顺序等的小决策。当你把它们放在一块儿时,全部这些决定都会构成一种使用模式。若是你都作出了最适合的决定,那么这种模式将帮助你设计你所须要的API。编辑器
要想作出正确的设计决策,你须要先从错误的设计学习。事实上,在你摸索到正确以前,你可能须要犯不少次错误。这就是迭代的关键,没有人第一次就作对了,可是若是有足够的机会,你能够更接近预想。工具
照理说应该迭代咱们的API设计,但在现实世界中很难作到这一点。由于在API发布后难以更改API,更改正在使用的API既昂贵又有风险。解决此问题的一种方法是每次更改时避免大幅更改界面。这是一个很好的习惯,而且是良好的API设计的基本规则。可是,有时突破性变动是不可避免的。理想状况下,在更改变得有代价以前,应该解决全部可用性和设计问题。性能
每次迭代都让咱们能够根据其用途来设计咱们的项目内容。例如,开发人员是否可以使用咱们构建的内容完成目标?这个界面真的能够实现吗?等等。咱们应该可以经过设计和实现许多接口而不真正发布它们来实现最佳的API设计。因此查看和模拟测试每一个界面将提供如何改进产品的实用经验。学习
可是在实践中,这种宏观迭代设计是不可能实现的。咱们没有时间反复地设计和验证一个API。更合理的方法是在设计过程当中尽早执行迭代。这些早期的设计应该有足够的细节来产生改进机会,随着时间的推移,咱们能够逐步提升细节(或保真度)的水平,直到最终达到咱们想要的API设计。测试
这个渐进的过程在设计界很受欢迎,一般分为三个重要阶段:优化
草图是一种最广泛的设计行为。建筑师弗兰克盖里的草图很是有名,他的许多建筑项目都是以纸张上绘制的一系列草图开始的。他绘制了数百幅草图,每次都能接近理想的设计。spa
交互设计师Bill Verplank将草图描述为设计过程当中必不可少的第一步。比尔·巴克斯顿(Bill Buxton)撰写了一本关于草图用户体验设计价值的完整书籍,提出了草图的关键特征以及重要性等。插件
在API设计过程的早期阶段结合草图使咱们脑海中造成界面的概念模型。好的草图应该易于制做而且随时修正,若是花费太多时间来画图会得不偿失。设计
咱们能够尝试不一样类型的界面风格,并捕捉咱们脑海中浮现的抽象概念。每一次的瞬间想法咱们能够用草图的形式记录,方便咱们审查和讨论它们。咱们能够决定是否喜欢草图某个特定概念,而后在此基础上补充或者从新开始。
例如,咱们可能会绘制一个与整个API相关的基本错误流或可应用于全部响应的响应消息格式。以后,在原型设计阶段,咱们能够将这些想法应用到工做模型中。
原型设计阶段是一个构建界面的更高保真度模型的过程,并测试咱们在草图绘制过程当中作出的一些假设。调用一个好的API原型,它应该处理实际请求消息并在须要时提供返回结果,甚至可以使用原型API建立一个简单的应用程序。
可是,构建原型应该比彻底实现成本更低。下降成本的一种方法是模拟返回消息,而不是从后端系统提供实际结果。这就是MOCK,是快速构建原型的好方法。
咱们应该可以基于草图构建两个或三个不一样的原型,在咱们构建的过程当中,咱们甚至能够回到草图阶段,根据咱们从原型设计阶段学到的知识来尝试新的方向。
原型还能够为您的团队提供了用户对设计的早期反馈并容许观察实际使用状况的机会。若是界面具备很高的保真度,您能够要求潜在用户在此基础上构建应用程序并观察他们过程当中面临的问题。
精心设计的API不只应该易于使用,并且还要具备可持续性,可靠性,高性能和长寿命。设计周期就像一个科学过程,原型阶段是你在作出改变以前测试任何假设的机会。
开发者的工做是将原型界面变成可交付使用的。最终的原型和支持草图造成了界面应该是什么样的描述。它们反映了集体设计决策,以造成须要构建的规范。实际上,使用正式的接口描述语言从原型转换到实现阶段是颇有用的。
例如,当您对原型API感到满意时,您能够选择在一些API管理工具如EOLNKER等中对其进行描述。
虽然实施交付是最后目标,但设计不该该停留在这个阶段。这是一个利用实际使用数据进一步测试您在整个设计过程当中所作假设的机会。正如原型API容许咱们观察使用状况同样,实现的API容许咱们在真实状况下分析使用状况。
例如,您可能但愿验证您所作的设计假设。应用程序开发人员是否真的使用您为他们建立的便利操做?您是否得到了预期的用户类型?新用户是否遇到界面特定部分的问题?
此分析可能会致使您再次启动草图绘制过程,以支持进一步改进的界面。
工具和技术能够从根本上改善设计过程。下降草图和原型建立成本的工具将使设计团队可以在更短的时间内生成更多设计,从而改进设计决策。
结合工具自动化是大多数设计过程的重要组成部分。在建筑设计领域,SHoP(总部设在纽约的建筑师联盟)经过创新,协做和基于工具的设计取得了成功。他们的工艺包括原型设计工具,使设计人员可以将所用材料的物理特性结合在一块儿。这种方法容许他们建立数千个设计迭代,每一个迭代都包含能够轻松评估的实现细节。
API设计领域中也有这种能优化的工具。实际上,全球范围内API服务领域中已经存在一些优秀的Web API设计工具。
如今,如EOLINKER、RAML、Swagger,都提供了出色的编辑工具来支持他们的语言。其中EOLINKER做为国内领先的API接口管理研发工具,正在以更全面的功能和简洁的页面超过如RAML、Swagger等国外传统单一服务产品。这些编辑器缩短了API的设计的建立时间,使得更容易在更短的时间内建立更多描述。点击查看EOLINKER的API编辑器。
遵循本文中描述的迭代设计风格,你将为你的团队建立有效的API。在流程开始时建立和评估许多低保真设计,以促进实验和构思。构建更高保真的原型和模拟实现来评估早期的设计理念。最后,为真实用户实施设计并收集数据以分析实际使用状况。
良好的API设计过程为您提供了生成最佳界面的机会。构建优秀API的秘诀不是专家指导或内部知识,相反,它是经过优秀的工具,语言和配置文件优化的迭代而成的,这会帮你完成愈来愈多优秀的API。
参考资料:Ronnie Mitra,From Doodles to Delivery: An API Design Process
原文地址:https://www.infoq.com/article...