开发者社区> 谢文龙> 正文

大批量API的管理技巧

简介: 系统服务化、API化,需要管理大量的API,这对于API的提供者和使用者来说,都存在很大的管理与沟通成本,这将是企业发展API经济的瓶颈。 1.统一的API管理平台 1)实现API完整生命周期管理 完成API从开发、测试、上线、下线,以及对API运行情况的监控、出现异常轻狂时及时报警等。
+关注继续查看

系统服务化、API化,需要管理大量的API,这对于API的提供者和使用者来说,都存在很大的管理与沟通成本,这将是企业发展API经济的瓶颈。


1.建立统一的API管理平台

1)实现API完整生命周期管理

完成API从开发、测试、上线、下线,以及对API运行情况的监控、出现异常轻狂时及时报警等。

2) 有良好的API服务发现机制

API需要给给客户提供API的发现途径,每当API增加或调整时,能有让客户及时发现。

3)提供API文档和SDK

给各开发者提供API的说明文档,包含Request和Response的描述,还应为各种客户场景提供多种语言的SDK,让用户很简单的操作就能调用API,且为了保证用户能够及时、准确的获得SDK和API文档,最好能够自动生成。以降低API开发和迭代成本。

2. 建立安全防护体系

API带来便利的同时,也带来了风险,需要对API进行相应的用户认证、权限控制、限流流量控制等手段来保证服务的安全,防止数据泄漏。

而对于攻击,需要做好相应的防护机制,如流量清晰、流量识别、使用高防IP等等,来保证服务的稳定。防攻击是一个预成本,不管攻击有没有来,都要先付出防护成本。

1)身份认证

为保证请求安全、不被恶意调用,且安全性较高的API需要增加设置,保证请求不在网络传输中被篡改,具有一定的时效性,且不允许重复使用。

这需要每个请求都附带上身份信息,API身份认证包含很多种,有HTTP Basic、API KEY/APP KEY、Oauth、openConnectid、JWK等方式。

2)权限控制

为保证数据的安全,需要有完整的体系,实现对API访问权限管理和数据权限。

3)请求加密

重要的API使用加密传输,比较流行的做法是使用https,但使用https会有一定的性能损耗,必要时可以区分对待。

4)流量控制

即在开放API时,根据服务能力、业务场景,对API增加API、用户等多维度请求频率控制,以保证服务的可用性,避免恶意调用。


  • API流量控制:根据端服务能力和业务的重要程度进行业务分层,对不同的API进行差异化的流量控制。以保证重要业务的延续性。
  • 用户流量控制:在API上的用户分层,防止用户间相互挤占资源。

3. 运行情况监控

要提供一个稳定的API服务,才能有人敢用, 所以API服务的稳定非常重要。但实际情况是,我们总被各式各样的问题扩扰。为了不断改进用户体验,需要监控API的运行情况。

1)监控

监控提供信息,可以直接观察到API的运行情况和用户的使用习惯,为API的运维和运营提供依据。

2)调用量

掌握并分析API的调用量,可以了解客户的偏好(哪些API用户习惯使用,哪些不是),了解服务的负载情况,从而合理的安排资源;也能了解到我们的API设计是否合理,如用户进行一次业务操作需要多次调用同一API。

A. 错误率

错误率是API评价的重要指标,造成错误率高可能的原因有:

a. 后端服务不达标,经常报错;

b. API设计过于复杂,用户不理解;

错误率是系统健康状况的重要衡量指标,针对不同的错误,需要不同测应对策略。

B. 错误分布

一个好的监控可以看到错误的详细信息,可以了解到,错误原因,如:

a. 某个入参错误率高,需要调整API设计,优化复杂入参,避免理解偏差;

b. 很多用户调用超出了流量控制的限制,需要扩充服务能力,并调整流控;

c. 服务超时严重, 需要检查代码是否高效,是否需要适当增加后端服务能力。

B. 报警

针对重要指标进行报警通知,如:突增的流量、飙升的错误率、服务响应缓慢等,需要立即处理,以免造成故障。

c. 原则

a. 只有关键指标才设置报警,不是越全越好

b. 仔细分析报警阈值,不是越低越好

c. 报警标题及内容要言简意赅,不是越详细越好

d. 报警短信和邮件结合使用

 



 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Swagger基本使用快速上手
Swagger简介 1、是一款让你更好的书写API文档规范且完整的框架。 2、提供描述、生产、消费和可视化RESTful Web Service。 3、是由庞大工具集合支撑的形式化规范。这个集合涵盖了从终端用户接口、底层代码库到商业API管理的方方面面。
7 0
【计算机网络】网络层(上万字+超多图详析)
上一篇我们总结了关于数据链路层的相关知识,如果你还没有看可以先去看看数据链路层相关知识,这样有助于我们后面的继续学习。
11 0
Python 3+Django 3 结合Vue.js框架构建前后端分离Web开发平台实战
Python 3+Django 3 结合Vue.js框架构建前后端分离Web开发平台实战
11 0
❤️Android 进程与线程 ❤️不好不要钱(下)
小结 实现Callable和实现Runnable类似,但是功能更强大,具体表现在: • 可以在任务结束后提供一个返回值,Runnable不行。 • call方法可以抛出异常,Runnable的run方法不行。 • 可以通过运行Callable得到的Fulture对象监听目标线程调用call方法的结果,得到返回值,(fulture.get(),调用后会阻塞,直到获取到返回值)。
10 0
推荐一款 Postman 的开源替代品: Postwoman
推荐一款 Postman 的开源替代品: Postwoman
12 0
Kubernetes----ConfigMap配置存储
Kubernetes----ConfigMap配置存储
14 0
Kubernetes----配置Secret存储
Kubernetes----配置Secret存储
12 0
❤️Android 性能优化之启动优化❤️
背景 用户希望应用能够快速打开。启动时间过长的应用不能满足这个期望,并且可能会令用户失望。轻则鄙视你,重则直接卸载你的应用。 用户不会在乎你的项目是不是过大,里面是不是有很多初始化的逻辑。他只在乎你-慢了。 所以咱们这篇文章有两个目的: 启动速度提升(用户眼中的大神就是你) 优化代码逻辑和规范(别让自己成为继任者中的XX) 今天咱们就来了解一下应用启动内部机制和启动速度优化。
10 0
❤️Android 12 高斯模糊-RenderEffect❤️
Android 12 高斯模糊 新功能:更易用的模糊、彩色滤镜等特效 。 新的 API 让你能更轻松地将常见图形效果应用到视图和渲染结构上。 使用 RenderEffect 将模糊、色彩滤镜等效果应用于 RenderNode 或 View。 使用新的 Window.setBackgroundBlurRadius() API 为窗口背景创建雾面玻璃效果, 使用 blurBehindRadius 来模糊窗口后面的所有内容。 咱们一个一个玩。
10 0
①万字《详解canvas api画图》小白前端入门教程(建议收藏)
①万字《详解canvas api画图》小白前端入门教程(建议收藏)
16 0
+关注
谢文龙
阿里云开发者服务产品专家,您想深入沟通,您可以使用钉钉搜索:森屿
13
文章
15
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载