首页 > 其他分享 >API 生命周期管理

API 生命周期管理

时间:2022-10-16 12:12:19浏览次数:52  
标签:负载 生命周期 管理 性能 接口 API 文档 测试

一、API 创建

• 基于 API 设计器生成 API。
Swagger Editor 可以在浏览器中使用 YAML 编写服务 OpenAPI 规范的 API 文档,并能够实时预览文档以及自动化生成代码。

• 从代码扫描生成。
该方法主要在项目中后期使用。在项目迭代过程中,会不断更新现有的 API 接口和增加新 API 接口。
目前常用的工具也是Swagger,可以在项目中添加依赖和配置即可生成。

二、API 测试
API 的测试包含几个部分:API 的接口逻辑、API 文档和 API 的性能测试。

• API 接口逻辑
API 接口定义了客户端和服务器端通信的契约。包含所需的输入参数和 API 的预期响应。在进行 API 接口测试时要测试不同参数的组合对结果的影响,包含正确和错误的情况。

• API 文档的测试
API 测试时需要验证 API 接口文档是否是正确且最新的。
当发布新版本的 API 时,应更新 API 文档到当前版本。
API 文档应该和 API 一样是有版本控制的,并且 API 文档应该是自动化生成,这样既能保证 API 文档与代码的一致性,也能保证 API 文档的正确性。目前常用的 API 文档生成工具,还是 Swagger。
如果要想检查每次提交有没有 API 接口的变更,可以参考微软 Azure 的一个开源项目 openapi-diff。

• API 性能测试
大多数情况下,应用程序的整体性能取决于为应用程序提供基础的 API 性能。因此,API 的性能和负载测试就显得非常重要。

• 第一步:收集有关API的性能要求数据,包含以下信息:
每个 API 每秒请求数的平均吞吐量;

在给定的峰值处理请求的最大数量;
客户端应用程序预期的并发用户数,能够预测 API 在负载下预期处理的并发连接总数。

在决定 API 测试的性能要求后,在实际测试时就要以该要求为标准进行验证。
如果未达到该要求,就要调整和优化 API 平台的参数,从而获得更好的吞吐量。如果通过优化仍然未达到要求,就应该考虑更高配置的硬件设施。

• 第二步:选择性能测试的方法。
1.基线测试:该测试的目的是找出系统在正常预期负载下的表现,测试结果用于分析 API 响应时间的平均值和峰值。

2.负载测试:在负载测试期间,增加负载,以研究在不断增长的流量下 API 的性能。
可以查看的指标有响应时间、吞吐量等。该测试的目的是了解预期的系统行为和处理预期峰值负载的能力。

3.压力测试:该测试的目的是找到平台的临界点,确定系统可以处理的最大吞吐量。
当随着流量逐渐增加,直到性能开始下降或 API 调用的错误开始增加时便到达临界点。

4.浸泡测试:该测试的目的是指当系统长时间测试时是否有任何系统不稳定的问题。

• 第三步:选择合适的工具或平台进行测试。比较常用的有 JMeter 和 LoadUI 等。  

三、API 发布
API 经过测试达到可发布的要求后即可发布,发布后的 API 可以被其他客户端使用。

四、API 版本的管理方法。

• 使用 URL 管理:API 通常由 URL 标识,所以在URL中加入版本控制是有意义的,也是目前最常用的方法。
比如:https://api.devops.com/v1/products https://api.devops.com/2018/products 等;

• 使用 HTTP Header 管理:在 Header 中指定 API 的版本,比如使用 X-API-Version 的 header 标识。
使用查询参数管理:在查询条件中指定版本,比如 https://api.devops.com/products?version=2

标签:负载,生命周期,管理,性能,接口,API,文档,测试
From: https://www.cnblogs.com/muzinan110/p/16795928.html

相关文章

  • virsh管理域
    域==虚拟机KVM部分创建并查看虚拟机磁盘文件cd/var/lib/libvirt/imagesqemu-imgcreatecentos35-1.qcow2-fqcow2-obacking_file=centos-35.rawll/var/lib/libvi......
  • kvm虚拟磁盘文件管理
    磁盘驱动器接口类型IDE兼容性最好,性能较差,逐渐淘汰SATA纠错能力强,接口简单,机械使用最广SCSI性能好,价格贵,主要用于服务器SAS拓展性和可用性好,新一代SCSI,与SATA兼容Vir......
  • 百度地图api之点击地图获取坐标点
    一.首先引入所申请的ak密钥<scripttype="text/javascript"src="http://api.map.baidu.com/api?ak=PlhFWpA02aoURjAOpnWcRGqw7AI8EEyO&v=2.0&services=false"></script>......
  • SpringBean的生命周期
    SpringBean的生命周期SpringBean的生命周期大体如下:Instantiation:实例化bean(完成构造器注入)依赖注入:属性(接口)注入,setter注入aware:beanName,beanFactory,app......
  • virt-manager管理虚拟机
    1.虚拟机的关机、开启和重启推荐安装高级配置和电源接口(yum-yinstallacpid),以减少对磁盘的伤害2.虚拟机克隆产生的磁盘文件所在目录:/var/lib/libvirt/images产生的......
  • C# 创建系统右键菜单按钮关联指定程序(无需管理员权限)
    前言为了将“解决自媒体一键多平台发布”项目做得更适合自己的使用习惯,Windows端的桌面版也立项了。本篇文章分享的内容是:实现系统右键菜单按钮关联桌面程序问题。一、......
  • 进程和计划任务管理
    目录:1、程序和进程的关系2、查看当前终端3、top4、pgrep5、pstree6、lsof7、vmstat8、五大系统资源9、系统的启动方式10、crontab命令 程序和进程的关系程序......
  • 基于JavaEE的企业制度管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要:本企业制度管理系统是针对目前企业制度管理的实际需求,从实际工作出发,对过去的企业制度管理系统存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息,取代人......
  • 实战 | 用Python和MediaPipe搭建一个嗜睡检测系统 (详细步骤 + 源码)
    导读本文将使用Python和MediaPipe搭建一个嗜睡检测系统(包含详细步骤+源码)。背景介绍   疲劳驾驶的危害不堪设想,据了解,21%的交通事故都因此而生,尤其是高速路上,大多......
  • 高校人事管理系统设计与实现-计算机毕业设计源码+LW文档
    该系统采用适用的软件开发模式和软件开发过程,使用符合学校的技术加以实现。人事管理系统主要分为八个模块:人才招聘系统、入职报到系统、职称评审审核系统、任期考核系统、个......