2020中国API生态与开发者现状调研报告

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2. 前 言 当前,数字化转型已深入各行各业,API——这个曾经的底层代码接口,不仅发展成为 产品本身,更成为企业承载价值、连接业务的核心载体,一个由API使用者和开发者组成 的、围绕API产品生命周期的价值交换新模式正日益成熟,特别是与微服务、DevOps等技 术的融合,都将使得API战略成为企业加速创新的利器。 该报告旨在通过全面的视角反映API生态的发展现状,包括API使用者和开发者的主要 诉求、策略、行为,展现API产品生命周期各阶段的实践过程、工具使用情况,并进一步探 讨API技术未来可能的发展方向、价值实现方式,力求为相关企业、组织、个人制定API战 略提供一个参考视角。 报告方法论 该报告的观察和发现主要基于数据统计,我们广泛采集了相关从业者的数千份调研问卷,并从中优选了 5000余份具有高可信度的数据,在此基础上结合主观经验进行数据的解读和剖析,对数据产生的客观背景、深 层次原因进行了适当延伸,最终得到以下若干结论。
3. 目 录 CONTENTS 主要结论 ---------------------------------------- 关于结论的说明 ----------------------------------- API的发展和应用现状 API的使用者需求 01 02 -------------------------------- 06 ---------------------------------- 12 API开发者的策略和行为画像 --------------------------- 16 API设计流程和工具 -------------------------------- 22 API测试流程和工具 -------------------------------- 26 ----------------------------------- 32 ---------------------------------- 37 API文档的使用 API综合管理体系 API的技术挑战和发展趋势 统计人口样本 ---------------------------- 41 ------------------------------------ 44
4. 主要结论 1、当前,我国API生态尚未成熟、市场尚处早期发展阶段,虽然API已广泛应用在以网 页、移动应用、后端系统集成为主的众多场景,但因质量问题带来的API变更仍然是造成线 上事故的主因。在所有受访者中,API开发者呈现出人数比例偏低、集中在开发/设计端、 从业经验尚浅等特征。 2、使用者对API的主要诉求已由获取数据能力转变为获取技术能力、甚至业务能力, 使用者渴望高效便捷的寻找、调用方式,除关注API产品本身性能外,也愈发关注优质的后 续服务和使用体验。 3、当前开发API的最主要目的是优化内部系统、工具和团队协作,其次是促进形成生 态、开展外部合作,较少被用于盈利目的,API的开发行为同样需要广泛地借助各类工具, 工具的易用性是其首要关注点。 4、API开发模式正走向规模化、体系化,半数开发者已经建立API设计流程,开源编 辑器依然是其首选的设计工具,设计方式逐渐由代码驱动转向文档驱动,通过API设计文档 自动生成代码的能力愈发重要。 5、质量低下的API可能对用户的业务造成严重影响,缺乏合适的工具和技术已经成为 保障API质量的最大障碍。API开发者同样意识到了质量问题,建立API测试流程已经成为 共识,普遍使用多款测试工具,YAPI、Postman是目前的主流。 6、七成受访者已建立正规的API文档流程,但大量的团队还没有意识到API文档应有 的重要作用、也不具备自动化生成API文档的能力,有相当比例的受访者选择使用自研的 API文档工具,相关工具的匮乏似乎成为API文档管理的障碍。 7、开发者的API管理意识更强,普遍选择API网关开放API、以及通过API综合管理平 台实现API的全生命周期管理。 8、API技术依然面临全面的挑战,受到最多关注的包括标准化、可组合性/可重用性、 和安全性,且普遍认为微服务、物联网、DevOps等技术的发展可能对API最具促进作用。 01
5. 关于结论的说明 1. 当前,我国API生态尚未成熟、市场尚处早期发展阶段,虽然API已广泛应用在以网 页、移动应用、后端系统集成为主的众多场景,但因质量问题带来的API变更仍然是造成线 上事故的主因。在所有受访者中,API开发者呈现出人数比例偏低、集中在开发/设计端、 从业经验尚浅等特征。 约78%的受访者表示已经将API对外部开放,其中供外部付费使用的仅占9%,一定程 度上说明当前API应用行业的竞争还处于蓝海时代。伴随企业的数字化、微服务改造进程不 断深入,API被广泛应用在网页、移动应用、后端系统集成等场景,API经济正在帮助各行 各业的企业借助外部力量高效、低成本、快速地获取数据和技术能力,新势力仍有广泛的市 场机遇。 API经济中,API质量问题仍是参与双方的主要困扰,因质量问题带来的API变更占据 了线上事故中相当高的比例。当API出现问题时,使用者期待开发者提供便捷的沟通渠道和 及时有效的处理方式,这需要API开发者有相应的技术能力维持高水平的可靠性、安全性和 功能。 就我国的API经济参与者来看,API使用者的数量比例明显高于开发者,双方数量比例 约为2:1,开发者集中在开发/设计端,且经验尚浅,从业3年以下的占比44.4%,这也说明 我国的API经济尚处早期发展阶段,即希望通过API获取外部数据、技术能力的需求旺盛, 但相对缺乏有能力开放高水平API、并进行全生命周期管理的组织。 2. 使用者对API的主要诉求已由获取数据能力转变为获取技术能力、甚至业务能力,使用 者渴望高效便捷的寻找、调用方式,除关注API产品本身性能外,也愈发关注优质的后续服 务和使用体验。 从API的使用目的来看,使用者通过API获取技术能力、甚至业务能力的需求明显高于 获取数据的需求,选择两者的受访者占比分别为78%、42.3%。进一步讲,使用者更关注 API的可用性,易用性、API文档准确详尽、服务可用性是其最为关注的三个要素。对于 API开发者来说,除了产品性能的竞争外,更加优质的后续服务和使用体验,也会赢得更多 用户的青睐。 在寻找API和调用过程中,使用者最希望获得在线API调试、API参数说明、API全局搜 索、SDK示例代码功能,表现出使用者希望高效找到合适的API、并快速掌握其使用方法 的诉求。 02
6. 3. 当前开发API的最主要目的是优化内部系统、工具和团队协作,其次是促进形成生态、 开展外部合作,较少被用于盈利目的,API的开发行为同样需要广泛地借助各类工具,工具 的易用性是其首要关注点。 从API开发者的行为来看,开发API的主要动力是来源于组织内部的,有55.7%的受访 者表示希望通过开发API优化内部系统、工具和团队协作,48.3%的受访者希望能够减少开 发时间/成本、提高效率。源于组织内部的开发动力决定了API的衡量标准,开发者最关注 API可用性,包括性能、功能性等方面的考量,但对于后期稳定性的关注度有所欠缺。 在开发行为中,Java仍是48.8%的开发者选择的主流语言,相应的,34.7%的开发者 使用IntelliJ IDEA作为集成开发环境,另外,华为云CloudIDE、VSCode等生态丰富的集 成开发环境也广受开发者青睐。在开发工具的选择上,API开发者需要广泛地借助各类工 具,涵盖设计、文档管理、测试等各个环节,易用性是开发者选择工具的重要关注因素。 4. API开发模式正走向规模化、体系化,半数开发者已经建立API设计流程,开源编辑器 依然是其首选的设计工具,设计方式逐渐由代码驱动转向文档驱动,通过API设计文档自动 生成代码的能力愈发重要。 API设计能力的重要性不言而喻,建立API设计流程对提升设计能力的作用已经成为共 识,共计约75%的开发者对拥有正式的API设计流程持正面态度。从设计方式来看,代码驱 动的设计方式正逐渐转向文档驱动,采用两者的开发者占比分别为48%、38%。API开发 模式正走向规模化、体系化,API开发文档的重要性愈发凸显,这也促使共计约65%的开发 者表示希望获得、或已经实现了通过API设计文档自动生成代码的能力。 在设计行为上,开源编辑器依然是开发者进行API设计的首选工具,且RESTful风格的 API因其具备的天然优势而受到广大开发者欢迎,被54.4%的开发者采用。 03
7. 5. 质量低下的API可能对用户的业务造成严重影响,缺乏合适的工具和技术已经成为保障 API质量的最大障碍。API开发者同样意识到了质量问题,建立API测试流程已经成为共 识,普遍使用多款测试工具,YAPI、Postman是目前的主流。 低质量的API直接影响使用者的项目交付时间,甚至严重影响用户和公司品牌,尤其是 在更多的组织转向DevOps方向以实现持续集成和持续部署开发的背景下,第三方API产品 的质量稳定性将关系到整个项目的开发进度和交付质量。当前,建立API测试流程已经成为 共识,有78%的使用者和开发者认为它非常重要,但缺乏合适的工具和技术是进行API测 试的最大障碍。 从API测试的行为来看,YAPI、Postman是应用最为广泛API测试工具,但76.5%的 API使用者和43.2%的API开发者使用过多个测试工具,也说明还没有哪款工具赢得了用户 的信任。 6. 七成受访者已建立正规的API文档流程,但大量的团队还没有意识到API文档应有的重 要作用、也不具备自动化生成API文档的能力,有相当比例的受访者选择使用自研的API文 档工具,相关工具的匮乏似乎成为API文档管理的障碍。 API文档作为开发团队的必备工具,其重要性不言而喻,有58%的受访者对所在组织 API文档的完善程度给出正面评价,72.8%的受访者表示已建立正规的API文档流程,但依 旧有超过半数的受访者表达出不认同其重要性、或目前没有API文档流程,显然API文档的 价值还没有得到正确认识。 从文档需求和工具使用情况来看,文档可读性是最重要的API文档需求,Swagger- Hub、ReadMe/Markdown、Atlassian Confluence是目前应用最为广泛的三款API文档 工具,分别有13.8%的API使用者和23.3%的开发者使用自研的API文档工具,众多的管理 工具在个性化的需求面前也显得众口难调。 尤其对于API文档自动生成工具,仅36%的API使用者、34%的API开发者表示有能力 自动化生成API文档,而其余54%、58%的API使用者、开发者则手动编写API文档,市场 现有工具似乎并不能为实现这一能力提供有效的帮助。 04
8. 7. 开发者的API管理意识更强, 普遍选择API网关开放API、以及通过API综合管理平 台实现API的全生命周期管理。 在API的开放和调用方式上,开发者更倾向通过API网关开放API、并实现部分API管理 能力,使用者则更关注API的可用性,总计70.9%的API使用者通过类库、SDK调用、直接 调用的方式使用API,之间的差异体现出二者对于API管理诉求的差别。在管理工具的选择 上,云厂商围绕API生命周期提供了更全面的管理功能,本次调研的结果显示,阿里云、腾 讯云、华为云的管理平台占据了主要市场份额。 8. API技术依然面临全面的挑战,受到最多关注的包括标准化、可组合性/可重用性、以 及安全性,且普遍认为微服务、物联网、DevOps等技术的发展可能对API最具促进作 用。 API的开发和管理方法正在期待更加标准化、自动化的变革,受访者认为API最主要的 三项技术挑战分别是标准化、可组合性/可重用性、安全挑战。 从受访者普遍看好的微服务、物联网、DevOps等技术当中,我们可以适当延伸解读 API的发展趋势。首先,微服务架构将与整体的API策略深度绑定;其次,物联网的实现将 越来越依赖API技术;第三,DevOps和API的融合将产生更大的业务价值。 05
9. 第一部分 API的发展和应用现状 在报告的开篇部分,我们将为API生态 描绘一个基本的现状雏形,从主要用 途、应用场景、发展瓶颈、参与者画像 等角度总结我国API生态的供需现状、 发展特征及应用潜力
10. API 的发展和应用现状 1. 大部分API同时面向内部和外部提供,网页、移动应用是目前API支 持最多的场景 数据表明,虽然API的主要开发动力源于提升内部效率,但仍有约56%的受访开发者将 API积极地对外开放,仅有21%的受访者表示仅供内部使用,这样的行为也表明开放的API 正在给开发者自身带来积极的影响和效益。 从支持的场景来看,API已广泛支持了网页、移动应用、桌面、消息、事件,以及 loT、原有系统的数字化改造等众多场景,其中,网页、移动应用是其支持最多的场景。 向内部和外部提供使用 56% 仅供内部使用 21% 供外部免费使用 13% 供外部付费使用 9% 不确定 1% API的主要用途 63.4% 网页 59.6% 移动应用 35.5% 后段系统集成 29.4% 桌面 27.8% 消息 22.6% 事件 17.6% 嵌入式 13.8% IoT 原有系统数字化改造 11.5% 0% 10% 20% 30% API的支持场景 07 40% 50% 60%
11. API 的发展和应用现状 2. API使用者遭遇API变更,进而引起的线上事故的比例较高 API的使用者和开发者都因遭遇API变更引起了一定比例的线上事故,在API使用者 中:45%的受访者遭遇API变更引起线上事故的比例在25%-50%之间、38%的使用者表 示这一比例低于25%;而API开发者中这一比例相对较低:调研中48%的开发者选择了 “低于25%”、37%选择了“25%-50%”的数值区间。 总体看来,尤其对于API使用者,API变更可能已经成为造成线上事故主要原因之一, 而开发者显然拥有更好的应对措施。对于API开发者而言,需要提升稳定性方面的意识,为 使用者提供更多使用上的稳定性保障。 48% 低于25% 25%~50% 37% 13% 40% 30% 20% 45% 50%~75% 2% 50% 38% 10% 14% 75%~100% 0% 3% 0% 10% 20% 30% 40% API开发者(左侧)与使用者(右侧)遭遇API变更,进而分别引起的线上事故比例 08 50%
12. API 的发展和应用现状 3. 当API出现问题时,开发者应提供便捷的沟通渠道和及时有效的处理 方式,这对开发者进行API产品全生命周期的管理提出了更高要求 当使用者遇到第三方API出现问题时,近六成的受访者会通过向API提供者提交问题、 或临时切换到另一个API服务提供者等方式寻求解决,最大程度上保证业务的稳定,仅 14.3%的受访者选择了等待,其余受访者会通过各种方式尽快找到解决办法或替代方案。 而对于API开发者,使用者更希望其能够提供问题描述以及解决问题的步骤、临时的解 决方案、即时的通知或警告。 由此可见,API使用的稳定性至关重要,API产品应当为使用者提供一个能够随时沟通 并处理问题的服务方式,这也对API产品全生命周期的管理提出了更高要求。 向API提供者提交问题 49% 临时切换到另一个API服务提供者 46.3% 向团队或组织内部其他人员提交问题 40.8% 审视SLA(服务等级协议) 31.5% 考虑永久切换到另一个API服务提供者 24.5% 向外界公开此问题(例如论坛、社区、社交媒体) 24.0% 等待问题解决 14.3% 0% 10% 20% 30% 40% 50% API使用者遇到第三方API出现问题的处理方式 59.7% 提供问题描述以及解决问题的步骤 57.8% 提供临时的解决方案 47.0% 提供及时的通知或告警 38.6% 提供公开的API状态更新页面 32.6% 当问题解决时及时发布通知 0% 10% 20% 30% 40% 50% 当API出现问题时,API使用者希望开发者采取哪些措施 09 60%
13. API 的发展和应用现状 4. 我国API生态尚不成熟,市场尚处早期发展阶段,API使用者的数量 比例明显高于开发者,开发者集中在开发、设计端,从业经验相对不足 本次调研中,72%的受访者为API使用者,占比超过2/3,而API开发者占比不足1/3。 在从事API开发或相关工作的受访者中,从事开发、设计/架构、测试的人员占比最大,总 计达到约75%,而从事文档、部署运维、安全、技术支持、运营监控等职能的人员占比较 少,且年限3年以下的总占比44.4%,经验并不算丰富,也表明新的入局者存在较好的市场 机遇。 这一定程度上可以说明我国API生态的产品能力不足、市场尚处早期发展阶段。一方 面,仅少量企业或组织有能力通过开发API的手段优化内部效率、并通过优质的管理将内部 功能转化为对外服务业务;进一步讲,这样的组织以API开发为主、以API所能提供的能力 为核心竞争力,而对于API的管理、维护能力投入不足。相较之下,更多的公司希望借助外 部工具快速实现自己的业务逻辑,因此市场对于通过API的方式获取技术能力的需求较为旺 盛,对于很多开发者来说,提供API产品仍然具备较大的市场空间。 72% API使用者 28% API开发者 受访者在API生态中的角色 40 35.1% 35 34.6% 30 少于1年 25 20 15 10 1~3年 15.0% 3~5年 9.3% 6.0% 5 5~10年 10年以上 0 开发者从事 API 相关开发或提供 API 服务的年限 10
14. API 的发展和应用现状 开发 3% 2% 3% 4% 4% 设计/架构 测试 35% 9% 战略规划 文档 部署运维 11% 安全 技术支持 29% 运营监控 开发者负责的API工作 11
15. 第二部分 API的使用者需求 本章试图站在API使用者的角度,探求 其使用API的主要目的、功能诉求以及 主要关注点
16. API 使用者的需求 1. 使用者对API的主要诉求是获取技术能力、甚至业务能力 在对API使用者的调研中,57.7%的受访者使用API的主要目的是“使用API提供的能 力完成功能交付,避免重复开发,提高效率”,以“调用API,从外部服务获取数据”为主 要目的的受访者仅为22%。此外,还有20.3%的受访者同时选择了两者。 由此看来,使用者对API的应用诉求已经由初期的获取数据能力过渡到后期的获取技术 能力、甚至业务能力,而对于开发者来说,API技术能力的服务化和业务化将愈发重要。 57.7% 22.0% 使用API提供的能力完成功能交付, 20.3% 避免重复开发,提高效率 调用API,从外部服务获取数据 两项都有 使用API的目的 13
17. API 使用者的需求 2. 易用性、API文档准确详尽、服务可用性是API使用者最为看重 的特征 API使用者在决定是否使用一款API时,超过半数的受访者更看重API的易用性,同时 有超过40%的受访者还会考虑API文档准确详尽、服务可用性、服务响应及性能。此外, 在长时间使用过程中,使用者还希望API功能和生命周期设定切合实际期望,如及时的数据 安全、良好记录的变革及缺陷等。 由此可以看出,对于使用者而言,当API能力满足当前需求时,更加看重同类API产品 在具体使用上的体验及稳定性、应用性、可用性等特质,这预示着同类API产品间的竞争除 了产品本身能力的维度外,更加优质的后续服务和使用体验,也会赢得更多用户的青睐。 50.2% 易用性 46.0% API文档准确详尽 42.6% 服务可用性 40.2% 服务响应及性能 35.4% API使用的学习成本 34.8% 数据安全 25.2% 良好记录的变更及缺陷 响应内容符合规范且易于消费 22.6% 可信任的提供者 22.5% 21.2% 技术支持与客户服务 20.4% 底层架构可扩展性 19.9% 易于维护代码 活跃的社区/论坛 13.0% API成本 12.9% 其他 0.4% 0% 10% 20% 30% API使用者最看重的特征 14 40% 50% 60%
18. API 使用者的需求 3. 受访者渴望更高效找到合适的API,并快速了解API的具体能力、掌 握使用方式 在对受访者进行的API门户能力调研中显示,希望API门户能够提供在线API调试、API 参数说明、API全局搜索、SDK示例代码这4项功能的受访者比例均超过40%,受访者更希 望能够通过门户尽快找到所需要的API,并快速了解其具体能力和调试应用。 在线API测试 46.8% API参数说明 44.8% API全局搜索 44.8% SDK示例代码 43.5% API错误码详情 36.4% API文档展示 31.2% 调用监控统计 19.4% 身份认证 19.3% 在线CLI 17.6% 13.9% 订阅申请 其他 0.5% 0% 10% 20% 30% 40% 使用者希望API门户中提供哪些和API调用相关的功能 15 50%
19. 第三部分 API开发者策略和行为画像 本章试图站在API开发者的角度,探求 其开发API的根本动力、主要目的、功 能考量以及开发者行为画像
20. API 开发者的策略和行为画像 1. 大部分开发者将优化内部系统、工具和团队协作作为开发API的主要 目的,因此更强调可用性,很少将API产品用于盈利 在受访的开发者中,开发API的主要目的依然是面向内部的,有55.7%的组织希望通过 开发API优化内部系统、工具和团队间协作,48.3%的组织希望能够减少开发时间/成本、 提高效率;近3成的受访者表达了希望API能够促进外部合作,如API能够便于与外部伙伴 开展合作,以及便于外部生态的开发者参与;仅有18.6%的受访者将API产品作为盈利方 式。由此来看,API应用独立营收尚不被大多数团队所考量,一定程度上说明当前API应用 行业的竞争还处于蓝海时代。 开发API的目的决定了开发者将如何对其进行衡量,无论提供内部或外部使用,API的 可用性都是最重要的衡量标准。而在面向外部使用者时,API的调用次数、订阅/用户数量 也比利润/收入更受关注。 便于在内部系统、工具和团队间协作 55.7% 48.3% 减少开发成本/时间,提高效率 36.5% 便于与外部伙伴合作 36.0% 有助于提供产品或服务的功能扩展 34.0% 便于外部生态开发者参与 22.5% 加速数字化转型(互联网、移动、云计算等) 18.6% 以API产品作为盈利方式 17.3% 增强移动应用 16.7% 从外部产品获取数据或功能 14.5% 遵循合规要求 0% 10% 20% 30% 40% 50% 60% 开发者开发API的最大动力 API的可用性 61.3% 利润/收入 API的调用次数 22.0% 28.3% 提交及解决的问题数 43.6% 开发者衡量API成功的标准 41.0% 34.6% 开发者体验 订阅/用户数量 17
21. API 开发者的策略和行为画像 2. 在可用性和可靠性的平衡上,开发者普遍更侧重可用性,对可靠性的 关注稍逊一筹,这与API使用者的关注点基本一致 在程序员资源有限的情况 下,如何平衡可用性和可靠性是 性能 65.4% 一个值得思考的问题,在我们的 63.7% 27.7% 能、功能性等方面的考量明显高 于安全性、扩展性、可维护性等 可用性 可维护性 调研中,受访者对可用性、性 扩展性 关于可靠性的考量。 31.4% 60.1% 功能性 42.3% 59.1% 在对API应用的关注方向 开发友好 安全性 上,提供者与使用者的关注点基 本相同,但使用者更关注API应 API开发者对于 用接入后的稳定性,在这方面 APIs / Web Services主要的考量点 API开发者的关注度有所欠缺。 18
22. API 开发者的策略和行为画像 3. 目前Java仍是API开发的主要语言,相应的,IntelliJ IDEA成 为API开发者首选的集成开发环境 客观上来说,Golang被普遍认为更适合写接口,其开发、运行更快,且部署环境简 单。但从统计结果来看,Java是目前API开发的主流语言,近半数的受访者及其团队还是 选择了自己最熟悉的编程语言。 在开发环境的选择上,与Java作为主流开发语言相对应的,IntelliJ IDEA作为业界公 认的最好的Java开发工具,也成为了在受访者中应用最多的IDE。另外,开发者使用相对 较多的华为云CloudIDE、VSCode、Visual Studio也都是当下较热门的IDE。 Java 48.8% JavaScript IntelliJ IDEA 11.2% Python 华为云CloudIDE 9.9% C++ 11.9% Eclipse 4.4% Go 12.6% Visual Studio 6.0% C 13.7% VS Code 9.1% Net 34.7% 11.6% PyCharm 6.9% 3.1% PHP 2.7% C# 2.0% Ruby 1.3% Rust 0.2% 其他 2.7% HBuilderX 2.0% Sublime 0.9% Atom 0.8% 其他 0.5% 0% Vim/Emacs 10% 20% 30% 40% 2.0% 0% 50% 开发者所使用的开发语言 10% 20% 30% 开发者所使用的开发IDE 19 40%
23. API 开发者的策略和行为画像 4. API开发需要广泛借助各类工具,涵盖设计、文档管理、测试等各个 环节,但普遍将易用性视为选择工具的重要关注因素 从开发工具的使用上,我们不难看出开发者对于工具的依赖,开发者使用的工具类型覆 盖了设计、文档管理、测试等API开发管理周期的各个环节,且各类开发工具的使用比例相 近,API设计器、API功能/性能/压力测试工具、编码规范工具、源码版本管理工具、API网 关工具、API文档工具、单元测试工具、服务虚拟化工具、代码评审工具在受访者中的使用 率均超过了30%。 而在同类型开发工具的选择上,大部分开发者首先关注开发工具的易用性。另外,与现 有工具的集成、使用效率、先进的功能/特性等也成为开发者重点考虑的因素,而对于是否 开源、是否拥有活跃的社区、学习曲线的关注度并不高。 API设计器 38.5% API功能/性能/压力测试工具 37.9% 编码规范工具 37.4% 36.2% 源码版本管理工具 34.6% API网关工具 33.2% API文档工具 32.9% 单元测试工具 32.2% 服务虚拟化工具(Mock) 31.4% 代码评审工具 21.1% 安全测试工具 12.9% API调用分析 API市场门户 9.7% 0% 10% 20% 30% 开发者使用哪些API相关的开发工具 20 40%
24. API 开发者的策略和行为画像 易用性 58.5% 与现有工具的集成 43.2% 效率 43.1% 先进的功能/特性 39.8% 对脚本的支持 28.1% 成本 26.4% 是否开源 22.5% 是否拥有活跃的社区 21.2% 是否有现成客户案例(最佳实践) 19.5% 18.4% 学习曲线 0% 10% 20% 30% 40% 在评估API工具时,开发者优先考虑哪些因素 21 50% 60%
25. 第四部分 API设计流程和工具 在本章中,我们聚焦API产品生命周期 的一个重要阶段——API设计,观察开 发者如何看待、以及使用哪些标准和工 具实现API设计流程
26. API 设计流程和工具 1. 半数开发者已经拥有正式的API设计流程,近四成开发者已经实现了 文档驱动的设计方式 建立设计流程的重要性已经得到了开发者的普遍认可,共计约75%的开发者对拥有正 式的API设计流程持正面态度,其中约48%的开发者认为设计流程非常重要、且已经建立 设计流程。 而从设计方式来看,约48%的开发者停留在代码驱动的设计方式,也有38%的开发者 已经实现了文档驱动的设计方式。 显然,API应用的开发正在向成规模、成体系的团队化开发模式演进,这将加速API应 用的快速创新和发展,并对API应用的后续服务提供保障。在这样的背景下,API开发文档 中记录的详细信息将在日后成为团队协作共享的宝贵资源,其重要性愈发凸显。 6% 1% 有,设计非常重要 18% 目前没有,未来可能有 48% 有,设计不是很重要 没有 不确定 27% 是否建立正式的API设计流程 13% 1% 代码驱动:在编写好代码之后再在代码中补充API注解, 然后生成API文档 48% 文档驱动:在编写代码之前先设计好API定义,然后生成 框架代码 无固定方式 38% 其他 目前的API设计方式 23
27. API 设计流程和工具 2. RESTful作为优秀的接口设计标准被广泛使用 RESTful是目前使用最为普遍的一种接口设计方式,作为一个优秀的接口设计标准, 被54.4%的受访者采用。 客观来说,兼容性和可扩展性仍然是软件设计的主要挑战,RESTful风格的API具备 的天然优势使其受到广大开发者欢迎,例如通过HTTP协议降低客户端的耦合、具有极好 的开放性,显然已经取代了SOAP和WSDL等接口设计。 但并没有哪种标准是必然优于另外一种的,如gRPC和RESTful API都提供了一套通 讯机制,但gRPC有更加严格的接口约束条件,且能够大幅减少需要传输的数据量,在需 要对接口进行严格约束、或者对于性能有更高要求的场景更加适用。 REST 54.4% gRPC 24.5% 23.0% Socket GraphQL 19.7% Websocket 17.1% AsyncAPI 16.8% WSDL 15.1% API Blueprint 15.1% 12.4% SOAP Thrift 9.3% WADL 9.0% 5.5% RAML 4.2% ISO 8583 我们没有用到API标准 2.8% 0% 10% 20% 30% 40% 通用的API或Web Service定义标准的使用情况 24 50% 60%
28. API 设计流程和工具 3. 开源编辑器依然是开发者进行API设计的首选工具,大部分开发者希 望获得或已经实现了通过API设计文档自动生成代码的能力 创建优质的API需要借助强大的工具、语言以及档案所优化的迭代流程来实现,工具和 技术可以从根本上改善这一设计过程。接口描述语言提供支持性的工具以简化编写描述的任 务,这一点已经非常常见,RAML、Swagger等单一功能的开源编辑器都提供了优秀的编 辑工具以支持各自的语言,它们依然是开发者进行API设计的首选,有26.4%的受访将其作 为主要工具,而API管理工具普遍能够提供更全面的功能和更简洁的页面,也有18.7%的受 访者使用。从另一个角度来看,有41%的开发者表示能够通过API设计文档自动生成代码, 另外有25%的开发者希望通过工具获得借助设计文档自动生成代码的能力。 开源编辑器(如Swagger编辑器) 26.4% API管理工具中的设计器(例如Apigee、Azure) 18.7% IDE 17.1% 文本编辑器 12.4% Postman 10.2% SwaggerHub 6.0% MuleSoft Anypoint API Designer 3.0% Apiary 2.2% Stoplight 1.6% 其他 2.4% 0% 10% 20% 30% 通用的API或Web Service定义标准的使用情况 能够 25% 不能 希望API开发工具能提供从API设计自动生成代码功能 41% 能否通过API设计文档自动生成代码 34% 25
29. 第五部分 API测试流程和工具 本章我们将看到API测试在API产品生 命周期中的重要作用,还涉及不同测试 工具的使用情况、提供高质量API面临 的主要障碍等问题
30. API 测试流程和工具 1. 质量低下的API直接影响项目交付时间、SLA要求,严重时甚至对 使用者造成用户或公司品牌损失 随着第三方API在项目中扮演愈发关键的角色,API的质量将直接影响软件项目的交付 质量。23.9%的受访者认为低质量的API会延长项目交付时间,18.6%的受访者认为会导 致项目无法满足SLA。同时有20%的受访者担忧,质量低下的API会导致公司丢失客户或 用户,并对公司品牌造成损失。显然,提供更好的API质量保障方案,将为使用者选择API 增加更多信心。 延长项目交付时间 23.9% 无法满足SLA(服务等级协议) 合规风险 18.6% 3.2% 5.8% 17.6% 对公司/品牌造成损失 降低项目交付速度 14.2% 丢失客户/用户 16.7% 影响内部依赖于API的团队 因API质量低下给使用者带来的主要风险 27
31. API 测试流程和工具 2. 缺乏合适的工具和技术是保障API质量的最大障碍 在保障API质量的调研中,缺乏合适的工具和技术是使用者和开发者面临的最大障碍, 分别有20.9%的使用者、20.8%的开发者选择了该选项。其他障碍中,较为集中的选项还 包括:缺少足够的精力、缺乏经验和技能、缺少有效协作等。 可以得知,在尚未成熟的API生态中,市场亟需好的API开发工具和经验指导,具备专 业能力的API开发机构或将加速API生态的建立和发展。 缺乏合适的工具和技术 20.9% 16.1% 缺少有效协作 16.8% 缺少足够的精力 16.4% 13.8% 13.4% 12.4% 缺少工具/系统之间的集成 6.3% 11.6% 20% 15.1% 缺乏经验和技能 11.9% 30% 20.8% 10% 没有时间 12.1% 缺少预算 11.6% 0% 0% 10% 20% 使用者(左侧)和开发者(右侧)在保障API质量方面面临的最大障碍 28 30%
32. API 测试流程和工具 3. 无论是API开发者还是使用者,已经建立API测试流程的受访者均超 过半数,API测试将成为整体自动化策略的重要组成部分 在API使用者中,52%的受访者表示已建立正式的API测试流程,而在开发者中这一比 例提高到了56%,另外分别有26%和22%的受访者表示目前没有,但未来可能建立测试流 程。 显然,建立API测试流程的重要性已经成为共识,伴随越来越多的公司转向DevOps方 向,以实现持续集成和持续部署开发,这意味着更快的反馈效率和更短的交付时间,API测 试将成为整体自动化策略的重要组成部分。 3.9% 1.9% 16.2% 有,测试非常重要 5% 1% 目前没有,未来可能有 16% 52% 56% 有,测试不是很重要 没有 22% 不确定 26% API使用者(外层)和开发者(内层)是否建立正式的API测试流程 29
33. API 测试流程和工具 4. 大多数受访者使用过多个API 测试工具,YAPI、Postman应用最 为广泛 目前,有多种第三方工具帮助工程师实现API的自动化测试,其中使用最广泛的是:提 供综合接口管理服务的YAPI、以及高效的探索型API测试工具Postman。 在所有受访者中,76.5%的API使用者和43.2%的API开发者使用过多个API测试工 具,表明API测试工具的市场竞争较为激烈,也说明还没有哪款测试工具赢得了用户的绝对 信任。 YAPI 42.1% Postman 38.5% API Fortress 27.6% ReadyAPI/soapUI 26.8% RAP 22.6% 19.0% Eolinker Karate DSL 17.8% Dredd 15.4% REST-Assured 14.6% Katalon 14.5% Pact 13.9% JMeter 11.5% Tricentis Tosca 11.2% Parasoft 10.1% Insomnia 9.1% Apigee 7.1% 0% 10% 20% 30% API使用者使用哪些API测试工具 30 40% 50%
34. API 测试流程和工具 Postman 58.2% YAPI 38.7% ReadyAPI/soapUI 26.9% JMeter 19.7% API Fortress 17.8% 13.1% Eolinker RAP 11.0% Dredd 8.6% 7.9% REST-Assured 7.1% Karate DSL Insomnia 5.8% Katalon 5.7% Pact 4.2% Parasoft 3.9% Tricentis-Tosca 3.9% Apigee 2.2% 0% 10% 20% 30% 40% API开发者使用哪些API测试工具 31 50% 50%
35. 第六部分 API文档的使用 在本章中,我们将探讨如何认识并发挥 API文档的重要价值,包括API文档流 程的建立、对文档工具的功能需求、文 档工具的使用情况、以及文档自动生成 能力的实现
36. API 文档的使用 1. 虽然约七成受访者已建立正规的API文档流程,且超过半数受访者对 所在组织的API文档完善程度给出正面评价,但依然存在大量团队没有 意识到API文档应有的重要作用 约72.8%的受访者表示已建立正规的API文档流程,但其中27.4%的受访者并不认可 API文档流程的重要性。此外还有21.1%的受访者表示目前没有API文档流程,但未来将可 能建立。 从自我评估的角度,有共计58%的受访者对自身组织的API文档完善程度给出正面评 价,包括“不错”、“很好”,仅有26%和13%的受访者给出“一般”和“需要改善”等 偏负面的评价。 API文档作为前后端两方沟通的桥梁,几乎是开发团队的必备工具,但依旧有超半数受 访者表示不认同其重要性、目前没有API文档流程、以及不能确定,一个可能的原因是受访 者所在的团队缺乏对于内部API的必要管理、以及管理缺乏基本的团队协同机制,以至于其 团队并没有意识到API文档应有的重要作用。 结合对API文档工具使用情况的调研,市场中显然还缺少一款主流好用的API文档工 具,用以完善API文档的全过程管理。 4.1% 2.0% 3% 13% 21.1% 30% 45.4% 26% 27.4% 28% 有,API文档非常重要 不错 有,API文档不是很重要 很好 目前没有,未来可能有 一般 没有 需要改善 不确定 很差 受访者所在组织是否有 正规的API文档流程 受访者所在组织的API文档 完善水平评估 33
37. API 文档的使用 2. API使用者和开发者普遍对文档可读性有较高要求 无论API使用者或API开发者,文档可读性都是其最为看重的内容。此外,双方对API 文档的主要需求还包括:对各种主流协议和设计规范的支持程度,操作指南,调用方法、参 数和返回值的解释,样例等。 文档可读性(清晰查阅) 54.3% 对各种主流协议和设计规范的支持程度 44.6% 操作指南(如API调用的示例、上下文介绍) 43.0% 调用方法、参数和返回值的解释 33.9% 样例 33.2% 错误码 29.8% 授权 22.3% 资源 20.8% 变更日志 16.7% 版本信息 14.0% 13.4% 术语表 12.7% 错误信息 0.5% 其他 0% 10% 20% 30% 40% 50% 60% 使用者眼中API文档最重要的内容 文档可读性(清晰查阅) 27.0% 对各种主流协议和设计规范的支持程度 19.3% 操作指南(如API调用的示例、上下文介绍) 14.5% 调用方法、参数和返回值的解释 9.4% 样例 6.4% 授权 5.3% 错误码 5.2% 资源 5.0% 变更日志 2.8% 术语表 1.7% 1.6% 错误信息 版本信息 1.4% 0.2% 其他 0% 5% 10% 15% 开发者眼中API文档最重要的内容 34 20% 25% 30%
38. API 文档的使用 3. API使用者和开发者使用的主流API文档工具较为一致,且都有相当 比例的受访者选择使用自研的API文档工具 总体来看,SwaggerHub、ReadMe/Markdown、Atlassian Confluence是API使 用者和开发者使用最为广泛的三款API文档工具。 值得关注的是,在使用者中,有13.8%的受访者选择使用自研的API文档工具,这一数 据在开发者中更是高达23.3%,双方都体现出缺乏主流文档工具的问题,而自研的API文档 工具或将有机会成为API开发生态中的创新点,弥补当前文档工具的不足。 ReadMe/Markdown 34.5% SwaggerHub 31.6% Atlassian Confluence 25.9% Apigee 20.8% Redoc.ly 20.3% Stoplight Docs 16.9% Eolinker 14.1% 自研的API文档工具 13.8% 13.7% YAPI RAP 12.3% 没有API文档工具 7.9% 0% 10% 20% 30% 40% API使用者使用哪些API文档工具 SwaggerHub 33.0% ReadMe/Markdown 28.0% 自研的API文档工具 23.3% Atlassian Confluence 18.6% Apigee 17.0% 没有API文档工具 14.2% 13.1% Redoc.ly Stoplight Docs 9.0% 3.3% 其他 0% 10% 20% 30% API开发者使用哪些API文档工具 35 40%
39. API 文档的使用 4. 仅少量使用者和开发者具有自动化生成API文档的能力 在受访者中,仅36%的API使用者、34%的API开发者表示有能力自动化生成API文 档,考虑到其中相当比例使用自研的API文档工具,实际通过市场现有API文档工具实现自 动化生成的比例会更低。其余54%的API使用者、58%的API提供者则自行编写、或由专职 人员编写API文档。 在整个API管理过程中,自动化生成API文档的能力至关重要,这项能力的不足也从一 个侧面反映出现有的自动化生成工具难以满足应用需求。 36% 自动化生成API文档,比如使用OpenAPI 37% 开发人员自行编写API文档 30% 24% 30% 21% 我们有专职的技术人员负责API文档编写 10% 40% 34% 20% 8% 我们没有API文档流程 10% 0% 0% 10% 20% API使用者(左侧)和开发者(右侧)处理API文档的方式 36 30% 40%
40. 第七部分 API综合管理体系 在本章中,我们着眼于分析API综合管 理体系的建立,涉及API的开放和调用 方式、API管理工具的选择、以及API 监控流程的建立等
41. API 综合管理体系 1. 开发者更倾向通过API网关实现部分API管理能力,使用者则更关注 API的可用性,对API的管理意识和诉求相对不足 在API的开放和调用方式上,总计70.9%的API使用者选择通过类库、SDK调用,以及 直接调用的方式使用API,选择CLI调用、API网关调用等方式的占比较少。而开发者更多 选择API网关的方式进行开放,之间的差异体现出二者对于API管理诉求的差别。 API网关作为API管理系统的一部分,不仅在OpenAPI开放平台上承担认证鉴权、限 流计费、统计查看、过载熔断等功能,而且伴随微服务架构的流行,API网关也开始作为微 服务网关的身份存在,成为其必不可少的组件。即使企业没有大规模地实施微服务架构, API网关也可以作为企业的API服务管理平台。API网关成为开发者开放API的首选方式,一 定程度上表明了开发者强烈的API管理需求。相对而言,使用者对于API管理的意识还较为 薄弱。 38.7% 通过类库、SDK调用 32.2% 直接调用API 15.0% 通过CLI调用 13.4% 通过API网关调用 其他 0.6% 0% 10% 20% 30% 40% 使用者通过哪种方式使用API API网关 31.5% API管理工具 21.1% API市场门户 18.4% 以SDK的方式提供 18.3% 10.7% 我们不开放API 0% 10% 20% 开发者采取哪种方式开放API 38 30% 40%
42. API 综合管理体系 2. 开发者显然需要一套完整的API治理体系,阿里云、腾讯云、华为云 三家厂商的管理平台占据大部分市场份额 伴随越来越多的云服务通过API方式交付、以及云服务之间的相互集成,阿里云、腾讯 云、华为云等云厂商提供了更为丰富的API管理服务。 在我们的统计中,阿里云、腾讯云、华为云的API管理平台占据了主要的市场份额,反 映出开发者更需要一套完整的API治理体系。如华为云API平台提供了错误码、API Explorer在线调试等功能,并通过APIG实现了便捷的端到端API生命周期管理,全面覆盖 了从设计、开发、测试、发布、运维、下线、上架下架等功能;阿里云API平台集成了API 文档/错误中心、API检索/在线调试等功能模块;腾讯云API平台综合了API文档、错误码、 API Explorer及SDK等资源的统一查询功能。上述工具都大大简化了企业能力的开放流 程,受到了开发者的欢迎,而YAPI、Kong等开源的微服务网关,因其商业化过程中较长 的开发周期和较高的运营维护成本,而逐渐受到冷落。 阿里云 42.8% 腾讯云 31.9% 华为云APIG 29.9% YAPI 14.0% AWS API Gateway 13.4% Microsoft Azure 13.1% 11.2% Google(Apigee) Kong 7.1% Eolinker 6.3% RAP 5.3% WSO2 5.3% IBM API Connect 5.0% MuleSoft 4.2% Software AG 4.1% SAP 3.8% 其他 5.5% 0% 10% 20% 30% 开发者使用过哪些API管理平台 39 40% 50%
43. API 综合管理体系 3. 近半数受访使用者已建立了API监控流程 超七成受访使用者对建立API监控流程持积极态度,其中43.8%的受访者已经建立了 API监控流程,还有28.1%的受访者表示可能将在未来建立。 使用者或对API的稳定性存在担忧,开发者如果想要在同类API的竞争中脱颖而出,除 了创新的功能点外,产品的稳定性及服务保障也是重要的竞争维度。 5.5% 2.8% 有,监控非常重要 19.8% 43.8% 目前没有,未来可能有 有,监控不是很重要 没有 不确定 28.1% 是否建立正式的API监控流程 40
44. 第八部分 API的技术挑战和发展趋势 本章我们将集中探讨API正在面临的技 术挑战,并预测相关技术的发展前景
45. API 的技术挑战和发展 1. 我们似乎正面对全面的技术挑战,受访者更关注标准化、可组合性/ 可重用性、安全性挑战 在API面临的技术挑战中,我们似乎正面对全面的技术挑战,各项挑战的关注度相差不 大,相较之下,受访者更关注标准化、可组合性/可重用性、安全挑战。尤其是API的标准 化将有利于推动API应用的互联互通,真正成为项目开发的加速器和连接枢纽。 标准化 安全 可扩展性 51.4% 41.8% 35.4% 工具间 易于集成 34.6% 可组合性/ 可重用性 48.1% 版本化 23.6% 可发现性 授权 29.2% 28.9% API面临的哪些技术挑战是需要首先被解决的 42
46. API 的技术挑战和发展 2. 微服务、物联网、DevOps技术的发展可能对API最具促进作用 总体来看,受访者对相关技术的预期发展态势较为乐观,微服务、物联网、DevOps 位列相关技术的前三名。 微服务 50.2% 物联网 39.3% DevOps 38.1% AI 30.7% 区块链 29.9% 23.6% 企业服务 移动应用 20.8% 自动驾驶 20.8% VR/AR 20.1% 数字化转型 17.8% 开放企业 17.6% 15.6% 聊天机器人 数字银行 13.1% 0% 10% 20% 30% 40% 哪些技术/应用会在未来两年促进API的发展 43 50% 60%
47. 第九部分 统计人口样本 在本报告的结尾,我们将统计分析不同 参与者的画像信息,包括行业、职位、 公司规模、地理位置等
48. 统计人口样本 1. 受访者多来自互联网/IT/科技产业 从受访者的所属行业来看, 互联网/IT/科技 互联网/IT/科技产业占比达到 金融服务 38.8%,表明API的开发与使用 38.8% 7.0% 零售/贸易 5.2% 工业与制造 4.3% 依然高度集中于互联网原生行 文化/媒体/娱乐 4.2% 业。其他如金融服务、零售/贸 医疗保健 3.9% 易、工业与制造、文化/媒体/娱 教育/科研 3.4% 乐、医疗保健、教育/科研等行业 1.7% 交通运输/物流 能源 成长空间巨大,可见在我国传统 非营利性 产业数字化转型的趋势下,API 其他 拥有广阔的市场应用前景。 1.1% 0.5% 1.0% 0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 参与调研者所属行业 2. 受访者中,后端工程师、前端工程师、移动应用开发工程师占比近 六成 本次调研中,受访者的职业 后端工程师 分布排名前三的分别是:后端工 前端工程师 程师、前端工程师、移动应用开 16.0% 14.9% 移动应用开发工程师 10.2% 运维工程师 发工程师,总计占比约57.6%。 架构师 而API开发工程师、DevOps工 API开发工程师 程师、QA工程师等职位整体占 DevOps工程师 比较小。 26.7% 8.9% 8.1% 5.3% QA工程师 3.5% 6.3% 其他 0% 5% 10% 15% 受访者的职位 45 20% 25% 30%
49. 统计人口样本 3. 75%的受访者来自于500人以下的中小型企业,处于规模化扩张阶 段的企业对API的关注尤为密切 参与本次调研的受访者总体上覆盖了50人以下的小微初创团队、50-500人规模的中小 型企业、2000人以上的大型企业,其中近75%的受访者来自500人以下的中小型企业。特 别是规模处于50-500人之间的企业,受访人数占比近六成,从侧面说明处于规模化扩张阶 段的企业,对外部的技术资源需求更加迫切,对API的关注尤为密切。 15.0% 1~50人 28.4% 51~100人 31.3% 101~500人 12.6% 501~2000人 12.7% 2000人以上 受访者所在组织的人员规模 4. 超过50%的受访者在北京地区工作,受访者基本分布于互联网行业 发展相对领先的一/二线城市 从地域分布来看,55%的受访者工作所在地位于北京,其余占比较高的城市排名依次 为上海、天津、杭州、深圳、广州,受访者基本分布于互联网行业发展相对领先的一/二 线城市。 6% 5% 6% 北京市 上海市 12% 天津市 杭州市 55% 16% 深圳市 广州市 受访者的工作所在地 46
50. 合作者 姚冬:华为云应用平台部首席技术布道师,中国DevOps社区核心组织者,IDCF社区联合发起人 马晓宇:环信 CEO ,20多年技术和管理经验,曾任职于IONA、Symbian、Nokia等公司,是移动通讯、手机软件、开源软 件等领域专家 吴阳:蒲公英 CTO,Web 全栈开发工程师,多年技术开发经验,开源项目 date-fns 成员,FreeCodeCamp 中文社区讲师 崔红保:DCloud CTO,跨平台开发老兵,小程序领域专家,出品了HBuilder、uni-app等广受开发者欢迎的产品 刘昊臻:Eolinker CEO,API全生命周期管理方案专家,广东工业大学特聘研究生教师,TGO广州分会会员 邹达:APICloud联合创始人兼CEO,国内较早将Web与Native技术融合的实践者,构建了APICloud技术架构及核心引擎 刘晖:InfoQ行业分析师,深入研究AI、云计算等前沿科技领域,API创新生态的观察家与见证者 万佳:InfoQ技术编辑,长期关注IT和互联网行业,熟悉当前主流技术,曾采访过多位知名专家、技术大牛 免责声明 【中国API生态与开发者现状调研报告(2020年)】的编写以及数据采集工作由华为云、InfoQ联合发起,中国信息通信 研究院作为指导单位深度参与,开源中国等技术社区及用友、环信、APICloud、DCLOUD、Eolinker、MobTech、蒲公 英等API实践企业和社会各界也给予了大力支持,在此,谨致以最衷心的感谢。 本报告保证采用数据来自合规渠道,力求客观公正、清晰准确地反映基于数据的研究成果。报告包含的信息取自调研获得 的5000+份有效问卷,华为云不对此类信息的准确性、完整性或适当性做出任何保证。同时,可在不发出通知的情况下对本 报告所含信息做出修改,读者应当自行关注相应的更新或修改。 本报告仅在相关法律许可的情况下面向所有开发者发放,并仅为提供信息而发放,概不构成任何广告。在任何情况下,本 报告中的信息或所表述的意见均不构成对任何人的最终建议。在任何情况下,华为云、华为云员工或者关联机构不承诺读者一 定获利,不与相关人士分享收益,也不对任何人因使用本报告中的任何内容所引致的任何损失负任何责任。读者务必注意,其 据此做出的商业决策与华为云、华为云员工或者关联机构无关。 本报告版权仅为 @华为云 所有,未经书面许可,任何机构和个人不得以任何形式翻版、复制、发表。如征得华为云同意 进行刊发的,需在允许的范围内使用,并注明出处,且不得对本报告进行任何有悖原意的引用、删节和修改。 47
51.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-27 12:29
浙ICP备14020137号-1 $Map of visitor$