ITBear旗下自媒体矩阵:

用友iUAP马太航:开放平台如何管理企业API

   时间:2015-09-09 10:38:19 来源:互联网编辑:星辉 发表评论无障碍通道

  要:API管理是开放平台最重要的功能,开放平台对API的管理已经不能局限于请求的调用与转发,而应该针对企业API的共性需求,提供一套完善的管理系统。

API开放平台是企业互联网化的产物,企业将自身业务能力以API方式开放出来,并通过开放API与开发者建立和维护关系。云开放平台聚合各类API,并对API进行统一管理。

API管理是开放平台最重要的功能,开放平台对API的管理已经不能局限于请求的调用与转发,而应该针对企业API的共性需求,提供一套完善的管理系统,这套管理系统应当包含以下要素。

1. 定制化接口调用

企业中不同部门、不同开发人员,由于自身技术或业务需求等原因,开发的API可能采用不同的协议、数据格式,而协议和数据格式的复杂性,必然会增加开发者使用API的成本。

API开放平台应当集成API适配器,通过适配器对请求做统一的适配处理,并允许开发者自定义请求协议和数据格式,这样可以让开发者无需关心API底层的实现,按照自定义的方式来使用API。

2. 规范化地址映射

开放平台的API管理中,所有的请求都经过开放平台的网关进行转发,因而地址映射是一个必须条件,这里还有两项优势:一是规范化请求地址,二是隐藏原始地址以保证安全。

规范化地址映射,目前有两种可选方案,一种是根据配置的API服务名、版本号、资源名自动生成格式化的地址,这种方案格式化程度高,可以保证所有API统一规范,利于开发者的使用,但配置繁琐,灵活度不够高;另一种方案是由API发布者对每一个API的资源自定义映射地址,这种方案灵活度高,但规范化不强。

3. 应用虚拟化

应用虚拟化是指将现实中的应用转移到平台上,使用应用来订阅并使用API,这是考虑到开发者的实际使用场景,并针对运维的需求所做的实现。当开发者有两个应用A和B,A和B都需要使用接口C,可以使用A和B分别订阅C,在应用A中使用接口C时,使用应用A订阅所产生的认证信息,B也同样如此。这样做有两个优势:一是可以对A、B的调用分别做控制;二是可以统计到A、B分别对C的调用情况,以做进一步的数据分析。

4. 私有化API管理

API私有化是企业API管理中经常会遇到的场景:企业内部的API只对部分用户开放(一般为企业内部开发人员或合作伙伴)。API私有化的解决方案有很多,目前最成熟的方案是依托于用户域的API私有化管理。用户域是指将有某些共性(比如属于同一个公司)的用户划为一类,并对该类用户提供特定的特殊权限。用户域应用到API管理中,我们可以将某个公司的用户划到一个用户域下,该公司私有化API发布的时候,选择只发布到该用户域下,这样只有该用户域的用户才能看到并订阅这些私有化的API。

5. 特殊资源管理

资源是API细维度的划分,通常每个API会拥有多个可调用的资源。在某些场景中,基于安全的考虑,发布者并不希望所有的资源都开放给开发者,这就需要对一些资源做特殊的权限限制。比如某个公司的用户信息管理API,里面有用户普通信息、用户隐私信息(包含身份证信息)等资源,其中,用户普通信息可以开放给公司所有内部开发者,但用户隐私信息,只能开放给限定的几个开发者,这个时候就需要在资源层级对API的使用做调用限制。目前有一种可实现的方案:要使用调用控制的资源默认不开放,开发者可以向发布者申请权限,发布者审核通过后,开发者才可以使用该资源。

6. 生命周期管理

生命周期管理在API的管理中是尤为重要的功能,以满足API发布和升级的需求。一个完整的声明周期,应该包含:创建、测试、发布、过时、停用,平台应当对不同生命周期的API进行不同的控制,比如对于创建和停用的API采取访问限制,对测试API做详细的测试分析,对过时的API使用进行过时提示。

7. 在线文档和SDK管理

开放平台使用在线文档,有两项优势:一方面无需发布者使用其他方式来管理文档,降低了发布者的API运营成本;另一方面,开发者无需其他操作即可查看API文档,方便开发者使用API。

SDK管理针对非即用类的API,有很多API需要使用SDK来调用,这时候就要求平台提供SDK的管理和下载功能。

以上是API开放平台应具有的基础API管理功能,与此同时,还应围绕API管理提供各种周边服务,如:统计分析、用户域管理等。另外,开放平台在管理API的过程中,要灵活地根据发布者和使用者双方的需求,即时地对API管理系统做优化。

举报 0 收藏 0 打赏 0评论 0
 
 
更多>同类资讯
全站最新
热门内容
网站首页  |  关于我们  |  联系方式  |  版权声明  |  RSS订阅  |  开放转载  |  滚动资讯  |  争议稿件处理  |  English Version