![640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1](https://i-blog.csdnimg.cn/blog_migrate/764f6b8b9714bccbeb152007b79147c3.jpeg)
API开放常见问题
每个开发人员在工作都会经常涉及各种API,基于这些API实现了形形色色丰富的功能。除了提供给内部其他服务使用的API,越来越多企业以API的方式将特有的数据或能力暴露出去,被其他公司或者最终用户调用,然后根据一定方式进行计费实现企业创收。很多企业在进行API开放时,往往定义了一个签名校验算法后就将API开放出去,并以为万事大吉了。但是经过一段时间却出现了很多意料之外的问题。例如:-
API提供者无法清晰掌握每个调用方的使用情况。
-
有些调用方的使用量有时会变得很大,影响API稳定性。
-
开放的API和调用方逐渐增多,致使有哪些API在开放,谁能调用哪些API的管理变得比较混乱。
-
有些调用方传参方式总是不对,导致开发同学在联调时花费大把时间。
-
经常会有一些莫名其妙的流量尝试攻击。
API管理
清晰的API管理工具和流程能 降低API的维护成本,提高开放效率 。 京东云API网关以分组和API两级管理API。可以按分组的方式来管理权限,流量,版本,发布,SDK和文档等,同时又可以按API来定义具体的接口细节、后端配置、转换配置。 大部分API网关产品都支持版本和发布环境的概念,这些概念有助于更好的管理即将发布的API。京东云API网关的版本指API定义的变化历史,和git仓库一样,每一次的变化都基于一个已有的版本进行,并且可以针对一个具体的API版本来生成这个版本对应的SDK和文档,然后部署到某个发布环境。京东云API网关预设了测试、预发、线上三个发布环境,用于区分新版本的测试环境和供API调用者使用的生产环境。而要提供新的API,首先需要把API定义出来,再部署到测试环境。部署之后,可以通过API调试界面在页面进行简单调试,也可以下载SDK后编程实现。权限管理
因为一般会有多个API开放给多个调用方,谁能调用哪些往往需要频繁调整,所以权限管理也是比较麻烦的一个工作。如果把权限相关配置放在API提供方的程序里,将非常不灵活,维护成本也会很高,但是利用API网关就可以 实现API实现逻辑与API鉴权逻辑的分离。 当鉴权逻辑主要交给API网关来进行后,API的实现就变得更加纯粹。 在鉴权方面,各家API网关产品支持的授权模式都不完全相同。目前,京东云API网关支持的授权模式有订阅密钥、API网关签名和京东云用户签名三种。订阅密钥的方式为在请求头传一个订阅密钥,不仅使用成本低,还能保证中等程度的安全性;签名密钥则会根据用户的AK/SK,利用京东云自定义的加密算法对数据进行传输校验,从而保证很高的准确性和安全性。由于API网关已经做了用户侧的验证,因此API提供方只需要验证其收到的请求是来自于API网关即可。关于验证的方式,国外的API网关产品较多使用客户端证书,而国内的API网关一般采用SecretKey签名的方式,京东云API网关也是采用后端签名的方式进行验证。 而在创建授权的时候,也可以配置访问授权、API分组及发布环境之间的任意绑定关系,使得一个调用者可以只调用某个分组,也可以调用多个分组,还可以限制其只能调用某个分组的线上环境,而测试和预发环境则只允许测试Key进行访问。
流量管理
如果希望给调用者做授权,同时想要保证他按照我们期望的频次来调用。 需要对已授权的调用操作进行流控限制时,只需要配置一条流控策略并绑定到对应的API分组上即可。 这里配置了两个流控值,即API分组次数限制和单Access Key次数限制。 API分组的次数限制用来保护API提供者的后端服务,这个值小于后端服务可支撑的上限即可; 单Access Key次数限制用来限制单个API调用者,可以按需设置。
监控和日志
当API被调用了以后,查看调用统计和日志就变得很重要了。在京东云的API网关中,能够看到请求量、失败量和响应时间等。此外,还可以看到API调用的具体日志,从而 对API进行安全可控的管理 。
除了上述这些丰富的功能,API网关产品还支持各种便利开发过程的功能,例如Mock后端服务。 需要开发新功能时,可以在API网关上配置API接口后使用Mock后端发布到测试环境,这样即使后端功能还未开发好,前端以及移动端的开发也可以使用Mock地址来进行开发和联调,大大提升了开发效率。
以京东云API网关为例,我们看到了如何使用API网关产品轻松地对API开放进行加速和强化,从而解决了企业在API开放过程中出现的一系列问题。选择一款合适的API网关产品,将能够带领用户在API经济热潮下快速找到正确的前进方向,为企业赋能,使企业更好的预见未来,拥抱未来!
点击" 京东云 "了解更多产品信息
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69912185/viewspace-2653884/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/69912185/viewspace-2653884/