登录/注册 帐户

API

什么是API设计?

API的设计是指开发过程应用程序编程接口(API)暴露的数据和应用程序的功能供开发人员和用户使用。API是现代企业重要的是,增加新的功能,一切从他们的业务和产品,以他们的伙伴关系战略。必威体育吧它不再是一个夸张地说,大多数企业不问是否在API程序搞,但如何做到这一点。

一个有效的API程序必须建立在一个组织的总体企业战略,并有助于其目标。你会知道你有一个伟大的战略时,你可以回答一个清晰的方式下面的3个问题的气质:

  1. 为什么我们要实现的API?
  2. 我们想通过这些api实现什么具体的结果?
  3. 我们如何计划执行API程序来实现这一目标?

该干嘛

人们常常对这个问题有不同的误解。首先,与其关注API的价值,不如考虑影响的API。记住,这是该组织的核心业务,这是有价值的,不一定是API。API是有价值的,当它成为提供新类型的接入到现有值的组织提供的通道。

另一种常见的误解是认为一个API是有价值的用户必须准备付出代价。这是真实的,只有当API本身就是产品。在大多数车型,这是情况并非如此。API是平时开着一些其他度量销售,附属机构推介,品牌意识等方面的API给用户的价值是结果的API调用(服务请求和响应),而不是调用本身。

最常见的业务驱动因素建立一个API程序,根据152个组织的调查由Cutter Consortium和Wipro进行的合作,旨在发展新的合作伙伴关系,增加收入,开发新的商业模式,缩短上市时间,并开发新的分销渠道。最重要的技术驱动是改进应用集成,改进移动集成,并支持连接到更多的设备。对组织的好处必须足够强大,才能使组织决定投资api成为明显的选择。

什么

第二个问题应该是“我们要实现与这些API有什么具体的成果?”换句话说,“什么该API的实际做的,他们有什么样的影响更广泛的业务战略?”

无论是内部视图和一个组织的外部视图的概念能够帮助定义什么的API。内部视图指的是具体的,有价值的资产的组织拥有。更有价值的和独特的服务和资源,提供更适合他们是API程序。必威体育网页

具有独特的数据组织可通过允许通过API访问数据充分利用这一资源。独特的内容,数据和服务可以使访问API非常有价值。

当决定的API应该为企业做什么,无论是内部和外部的意见
要检查的需要。有关决定什么然后通常的2次的组合。

具体而言,当为什么不太可能经常变化什么可能会因外部因素(如市场、技术考虑或经济条件)而显著不同。关于资产价值的内部方向可能会改变,这也会影响到API应该实现什么。

如何

最后一个问题,“我们如何设计我们的API程序来实现我们想要什么?”是所有关于实施和执行。

团队必须问自己:

  • 什么技术用于构建的API?
  • 这些API是如何设计的?
  • api是如何维护的?
  • 这些API是如何促进组织内部或销售给外面的世界?
  • 有哪些可用必威体育网页资源?
  • 谁应该对球队?
  • 我们如何跟踪对已设定的业务目标的成功?

该API团队

API团队与“产品”团队关系最为密切——无论您的客户是内部的还是外部的,您都负责构建、部署、运营和优化其他人所依赖的基础设施。

API就像产品团队,团队也可以很多样,但通常他们应该包括一个产品为中心的人充当守门员的战略和目标,等团队成员确保最佳实践在API设计中,工程师将API技术到位,和操作团队成员将运行API。

随着时间的推移,你还可以有更多的人参与进来,包括支持和社会各界的团队成员,API传福音的,安全的代表,和其他人。

约翰·马瑟强调他在2012年的演讲中提到了一个伟大API的5个“关键”在O'Reilly开放源码的约定:

  1. 提供有价值的服务
  2. 有一个计划和商业模式
  3. 让它简单,灵活,方便地通过
  4. 应管理和测量
  5. 提供强大的开发人员支持

第一个关键,提供有价值的服务,在考虑时尤其重要为什么您的API程序的价值主张是为API的成功的主要驱动力。如果API有错误的价值主张(或根本没有)这将是非常困难或不可能找到用户。

几乎所有公司的现有产品,数字或身体,可以产生价值
通过API,如果该API链接到现有产品并对其进行增强。只要API的结构覆盖了对开发人员有意义的用例,它就会产生价值。

这是什么意思为您的API?

查找和描述API的值是一个迭代过程。第一步是描述用户正在尝试完成的工作。例如:

  • 自动发送紧急函件团队成员在紧急情况下
  • 备份重要文件,以确保它们永远不会丢失
  • 收集样品数据,以检测特定的事件

下一步是确定之前影响用户的特殊挑战,期间或试图完成一项任务后:

  • 确保与多次尝试发送,检测故障,担心许多消息的可靠性被发送,而不是仅仅一个,并且具有取决于用户的位置不同的消息传递系统集成
  • 确保文件的安全传递,同时也使传输带宽最小化
  • 处理大量的数据并试图实时地将其关联起来

第三步是总结潜在的收益,用户可以实现:

  • 发送其他类型的通知,这是创造机会,而不是威胁警告的
  • 摆脱其他存储设备的可靠性是否满足你的需求betway西汉姆联
  • 基于事件自动触发行动

在检查这些难点时,要考虑得广泛一些,并列出诸如支持、文档或开发人员端口之类的东西——客户可以使用的一切东西。接下来,请概述您打算如何消除或减少API用户在尝试完成一项工作之前、期间或之后可能会感到烦恼的一些事情,或者阻止他们这样做的一些问题。然后描述您打算如何为API用户创造各种收益。

通过参与这一进程,上面可能会导致我们的3个例子:

  • 一种多通道消息API与单个呼叫传递消息,并直到到达被保证自动重试的能力(例如,Twilio,PagerDuty)。
  • 存储betway西汉姆联同步API,优化调用,有效检查新版本是否应该同步(如Bitcasa, Box)。
  • 一个API聚集多个数据源到一个可配置的流,其可以被过滤,取样,和容易地操纵(例如,GNIP,DataSift)。

最后,一个有用的澄清练习是组合一些语句,使API和用户配置文件之间的匹配变得清晰。如果您发现很难识别这样的fit语句,那么需要重新考虑API模型。也许有些API特性需要添加、修改、改进或消除。也可能是您的API确实提供了很大的价值,但您试图针对的是错误类型的用户。

当您将fit语句压缩和抽象为一个总体语句时,它就成为您的api的价值主张。在上述消息传递API的情况下,这可能是类似的:

我们的消息API提供企业开发一个可靠的,有保证的,无延迟短信的高度关键业务应用程序的功能。API还通过软件开发工具包(SDK),覆盖了快速集成最流行的编程语言的支持。

在某些情况下,你可能会认为“这似乎是太多的工作。”我们只是在创建一个内部APIHowever, focussing on value is key, even in internal use cases. A poorly determined value proposition will lead to difficulty pitching the value of the API to other teams. A well-defined value proposition can help ease adoption and make the API program a key contributor to the business.

为了帮助定义自己的API程序的价值,考虑以下5个问题:

  1. 用户是谁?这个问题应该与你的关系的角度来回答(他们在现有的客户,合作伙伴,外部开发者),他们的角色(他们是数据科学家,移动开发人员,运营人员)和他们的需求或偏好。
  2. 什么用户疼痛是我们解决和/或什么收益,我们为用户创造?This question should be answered in relationship to the customer’s business, challenges and gains defined by the value proposition, and whether or not a critical need is being fulfilled (is it a pain point, is it a revenue opportunity), and what metric is being improved for the user (speed, revenue, cost saving, being able to do something new).
  3. 你的API支持哪些用例?在价值主张的帮助下,确定API为您的组织和用户创造的最有效的用户挑战或机会的解决方案。必威体育官必威体育官方计划您的API来处理这些用例。
  4. 如何为用户的价值随着时间的推移被扩展?考虑到未来的变化,计划你的价值主张。与内部或外部变化相关的即将到来的重要里程碑是什么?
  5. 正在为您的组织创建什么样的价值在内部?考虑内部利益和API如何能的业务范围内的值。

从一开始就明确业务模式

能阐述API的价值是在设计你的基于API的计划的一个重要里程碑。然而,API还产生成本,这应该考虑通过值平衡。而值可能无法在金钱衡量,它必须是真实的,例如:

  • 什么是组织现有的核心业务?
  • 如何使用API来加速或增强这一业务?

在某些情况下的API可以导致完全新的商业机会的企业的现有业务模型之外。即使在这种情况下,原料药一般采用现有资产或专业知识,创造新的方式的机会。

总之,有3个原因,确定合适的商业模式是设计有效的API程序很重要:

  1. 确定合适的商业模式带来的API来组织成为关注的焦点,这对于驱动的API程序长期承诺的决定的价值。如果没有这种承诺很少有到位完成建立和运行有效的API程序所需的任务的资源。必威体育网页
  2. 确定正确的业务模型有助于定义产品的功能,这是满足第三方和产生业务所需要的。
  3. 确定正确的商业模式,确保着眼于角色和职责的组织内,并通过API生成的值的哪些部分保留了谁。这也意味着定义什么因使用该API的API增益,以及如何针对API提供商的收益是什么平衡的用户。

设计与用户心中实施

良好的API设计有一些核心原则,它可以在实现不同。这里有一个类比:每节车厢有一个方向盘,刹车踏板和油门。你可能会发现,危险灯,尾箱,或无线电从模型到模型略有不同,但它是罕见的,经验丰富的司机无法弄清楚如何驾驶汽车租赁。

这种“准备驱动”的设计是优秀的API团队所努力追求的——API只需要很少或根本不需要解释,就可以让有经验的从业者开始使用。

简单

API设计的简单性取决于上下文。一个特定的设计可能对一个用例来说很简单,但对另一个用例来说很复杂,因此API方法的粒度必须平衡。在几个层次上考虑简单性是有用的,包括:

  • 数据格式。支持XML,JSON,专有格式,或它们的组合。
  • 法结构。方法是非常通用的,返回一套广泛的数据,或者非常具体,以便进行有针对性的要求。方法也通常被称为以一定的顺序,以达到一定的使用情况。
  • 数据模型。底层的数据模型可以非常相似,或者什么是通过API实际上暴露出很大的不同。这对可用性的影响,以及可维护性。
  • 验证。不同的身份验证机制有不同的优缺点。最合适的要看语境。
  • 使用政策。开发者的权利和配额应该易于理解和使用。

灵活性

使API简单可能与使其灵活相冲突。只考虑简单性而创建的API有过度裁剪的风险,只服务于非常特定的用例,并且可能对其他用例不够灵活。

要建立灵活,先找出哪些操作的潜在空间是基于,包括底层系统和数据模型,并定义什么这些操作的子集,是可行的和有价值的。为了找到简单性和灵活性之间的平衡:

  • 试着让原子操作通过组合原子操作,全空间覆盖。
  • 找出最常见和最有价值的使用情况。设计结合了几个原子操作,以满足这些用例元操作的第二层。

可以说,超媒体的作为应用程序的状态(HATEOAS)的发动机的概念,能够进一步提高的灵活性,因为它允许在API中和在客户机操作的运行时的变化。HATEOAS通过使版本和文档更容易,但是,在API的设计,许多问题必须考虑确实增加灵活性。

考虑的关键问题

为了全面考虑您的API设计,请考虑以下5个问题:

  1. 我们有没有设计为支持我们的用例的API?识别所述主用例之后的下一步骤是设计API,以便它支持这些用例。灵活性是不排除任何使用情况下,可能是不太频繁重要的,所以,但还是应该得到支持,允许创新。
  2. 难道我们是为REST风格的缘故吧?RESTful API中非常时尚,但你不应该顺应这一趋势只是为了追赶时髦。有这非常适合于它的使用案例,但也有其他有利于其他建筑风格,如GraphQL
  3. 难道我们暴露不假思索的使用情况下,我们的数据模型?一个API应该从实际的数据模型抽象层来支持。作为一般规则,没有直接去你的API库,虽然可能有其需要的情况。
  4. 哪个地理区域是最重要的,我们有相应的计划我们的数据中心?API的设计也必须覆盖的非功能性元件,例如延迟和可用性。请务必选择在地理上接近的地方,你有大部分用户的数据中心。
  5. 我们是否同步与我们的其他产品的API设计?必威体育吧如果API是不是你的业务的单一产品,确保该API设计协调与其他产品的设计。必威体育吧这可能是你决定与其它产品完全解耦API设计。必威体育吧即使是这种情况,计划解耦API的设计不同于其他产品需要加以明确,并在内部和外部都传达。必威体育吧

关于困扰开发者体验

改进API设计以使其易于采用的一个关键指标是“第一次hello world的时间”(TTFHW)。换句话说,开发人员用您的API需要多长时间才能达到最小的可行产品?这是一种很好的方法,可以让您站在开发人员的角度来考虑如何测试您的API,以了解如何使某些东西工作。

当你定义TTFHW度量的开始和结束,我们建议覆盖作为开发商参与过程尽可能的许多方面。然后,优化它是为快速,便捷地。

能经历的过程也迅速建立开发商信心的API组织得很好,事情很可能会按预期方式工作。延迟“成功时刻”过长可能失去开发者。

除了TTFHW,我们推荐另一个衡量标准:“第一个盈利应用的时间”(TTFPA)。这更棘手,因为“盈利”是一个定义问题,这取决于您的API和业务策略。考虑到这是有帮助的,因为它迫使你去思考有关API操作的API计划的一部分问题。

开发人员体验的2个基本原则是:

  1. 设计的产品或服务,提供了一个明确的价值给开发商和解决的明显挑战或机遇。这可以是货币价值或其他一些值,如以此来增加影响力,品牌知名度,客户群,间接销售,信誉为开发者,或者使用伟大的技术,工程的简单快乐。
  2. 产品需要易于获取。这包括拥有轻量级的注册机制(或者根本没有)、对测试特性的访问、优秀的文档和大量自由整洁的源代码。

我们建议大多数API程序都应该有一个开发人员程序——不管你是公开你的API,只向合作伙伴公开,还是只向内部公开。这些规定可能会或多或少地复杂,这取决于受众。

开发人员门户

显影剂门户是一个显影剂程序的关键要素;这是核心切入点,开发人员注册,访问和使用的API。获得访问你的API应该是简单,易于开发。他们应该能很快上手。

TTFHW是最好的度量标准。你还应该考虑简化注册过程——越简单、越快越好。推荐的最佳实践是,开发人员应该能够调用您的api来检查他们的行为(请求和响应),而无需进行任何注册。另外,补充内容——比如入门指南、API参考文档或源代码——对于减少学习曲线非常有用。

通过生态系统合作伙伴加速

作为一个API提供商,你在合作伙伴和供应商的生态系统中运作。这些合作伙伴通常有他们自己的内容分发和通信网络和手段。我们建议确定联盟,这可以有效地帮助增加API的采用。通常,当api是互补的并在组合时为开发人员提供价值时,就可以找到这样的联盟。

评估您的开发人员经验需要考虑的问题:

  1. 我们如何在第5分钟解释API的价值?就API的价值主张,对开发人员进行“电梯游说”,最好能打动他们。
  2. 什么是我们的TTFHW和TTFPA以及我们如何减少呢?这是一种通过考虑端到端TTFHW来改进API的开发人员友好性的强大方法。我们建议在考虑添加到开发人员体验中的任何元素(如门户)以及API变化的每个方面时,记住TTFHW和TTFPA度量。
  3. 什么是开发人员的入职流程,是不是尽可能容易?这需要在网上与你的API的使用情况。安全级别自然需要有更灵敏的API或数据访问,这可能需要更多的正式协议更高。对于一切它应该非常简单明了,让早期开发成功(TTFHW)。
  4. 我们是否允许足够的灵活性,使开发人员的API吸引力?如果您找到了正确的价值主张,并且开发人员注册了您的API,那就太好了。请记住,帮助他们获得成功将会留住并增加他们的数量。
  5. 我们如何支持开发人员,如果他们面对的问题?我们相信自助服务的方法,这将帮助您扩展规模。许多开发人员的问题可以通过好的文档、faq或论坛来解答。但是自助服务有其局限性,对于更深入的问题或其他复杂问题,比如发票问题,应该有某种类型的支持机制。
  6. 可以在我们的文档支持创新?什么样的支持是有谁在正常使用的情况下,或想偏离做一些新的开发?好的创意可以来自任何地方。

入门

3规模API管理

可以很容易地共享,保护,分配,控制和赚钱你的API用于内部或外部用户。

Red Hat保险丝

一个分布式的、云本地的集成平台,连接云中的预先安装的、以及两者之间的任何地方。

您可以用api做更多的事情