0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是API标准化?

jf_WZTOguxH 来源:AI前线 作者:Thiyagarajan Kamaraj 2022-11-02 13:51 次阅读

什么是 API标准化?

API 设计就是创建一个有效的接口,使你可以更好地维护和实现 API,同时使消费者能够轻松地使用这个 API。

一致的 API 设计意味着,在组织或团队中对所有 API 及其公开的资源进行标准化设计。它是开发人员、架构师和技术作者共同遵守的蓝图,可以保证在 API 使用过程中品牌和体验的一致性。风格指南旨在确保 API 设计和实现方式的一致性,组织就是用它来标准化设计。下面是比较流行的两份风格指南:

  1. 微软 REST API 指南

  2. 谷歌 API 设计指南在业余项目里,为了开发出一致的 API,并遵循 API 开发的行业最佳实践,我经常参考这本风格手册。

为什么要标准化?

清晰的设计方法可以确保 API 与业务需求相一致。API 越标准,歧义就越少,合作成果就越多,质量就更有保障,API 的采用也会相应增加。

清晰一致的 API 设计标准是良好开发体验和消费体验的基础。它们使开发人员和消费者都能够快速有效地理解 API,缩短学习曲线,并按照一套指南进行构建。

API 标准化还可以改善团队协作,提供提升准确性和降低延迟的指导原则,有助于降低总开发成本。标准对于 API 策略的成功如此重要,以至于许多科技公司(如微软、谷歌和 IBM)以及行业组织(如 SWIFT、TMForum 和 IATA)都使用并支持 OpenAPI 规范(OAS),并将其作为定义 RESTful API 的基本标准。

如果不进行标准化,那么个体开发人员在设计过程中就可以随意选择。虽然我们鼓励创造,但如果没有适当的风格指南,很快就会变得混乱。

如果不进行标准化,那么组织就无法在 API 设计和交付过程中提供质量保证。强化设计标准有助于提升预测成功结果的能力,让组织能够在保证质量的前提下快速扩展 API 开发。

API 标准化之旅

如果没有一个正式的流程来强化标准化,就不可能成功地扩展 API 设计和开发过程,也不可能符合监管和行业标准。API 设计风格指南提供了内外部团队在构建 API 定义和重用资产时开展协作所需的“护栏”。

最初,组织在内部以 PDF 或 Wiki 的形式发布 API 指南,供所有人参考,并制定相应的流程以确保团队遵循设计指南。确保开发一致性的一种方案是在 API 开发期间进行人工评审。

API 以 OpenAPI 格式指定,并在版本控制系统中维护,API 定义可以遵循与其他代码工件相同的评审过程。开发人员可以为 API 更改创建 pull 请求,并让同事提供反馈。这个过程是手动的,是保障治理以及确保遵循 API 指南的有效方法,但与所有手动过程一样,它容易受人为错误所影响,而且有时候不及时。

等待同事评审 API 更改可能会导致周期变慢,对开发人员的工作效率产生不利的影响,特别是涉及到评审过程中可以自动化的方面时。当组织规模扩大,更多的开发人员开始参与 API 开发时,这个过程也无法扩展。在这种情况下,可以提供 API 自动评审的左移法就很有用了。就像我们对其他工件所做的那样,借助一些自动化工具或分析器尽早获得反馈,这样最好了。

什么是左移法?

术语“左移”指的是软件开发中的一种实践。在这种实践中,团队会比以往更早地开始测试,帮助自己聚焦质量,致力于问题预防而不是检测。左移的目标是提高质量,缩短漫长的测试周期,并降低在开发周期结束时(或者更糟,在生产环境中)出现令人不快的意外情况的可能性。

Open API 验证器

说到 OpenAPI 分析器,我见过一些。它们将 API 风格指南转换为一组规则,并根据 Open API 规范进行验证。这些分析器允许你根据组织风格指南自定义规则。一个名为 Zally 的分析器引起了我的注意,它是一个用 Kotlin 编写的工具,由 Zalando 开源。OpenAPI 风格指南验证器的工作流程如下:

将 API 标准或风格指南表示成一组规则。这里有 Zalando 提供的一份指南;

根据 OpenAPI 编写 API;

像 Zally、SonarQube、Spectra 这样的检测工具可以验证开发人员编写的 OpenAPI 规范是否符合第 1 步中定义的规范规则。

Zally 是什么?

Zally 是一个简单易用的 API 分析器。它的标准配置是根据 Zalando RESTful 指南中定义的规则检查 API,对任何人来说都是开箱即用的。它具有可扩展性,允许我们添加自己的规则集。它还提供以下特性:

  • 根据需要在服务器端启用 / 禁用规则;

  • 接受 JSON 和 YAML 格式的 Swagger V2 和 OpenAPI V3 规范;

  • 可以编写并插入自己的规则;

  • 直观的 Web UI 显示了实现的规则和规范验证的结果;

  • 使用 Web 钩子集成 GitHub,验证每个 pull 请求中的 OpenAPI,并在评论中回显违规情况。

Zally Gradle 插件背后的动机

虽然 Zally 的编写方式更具可扩展性和可定制性,但我觉得,我们仍然可以进一步改进 Zally 当前的验证工作流,缩短开发反馈循环。由于 Zally 缺少像 checkstyle、ktlint、spot bug 这样的插件,所以我在使用 Zally 时遇到了以下几个痛点:

  • 为了使用 CLI 工具,开发人员需要在本地或远程系统上托管 Zally 服务器;

  • 开发人员需要切换运行 CLI 工具的上下文,或是额外做一些工作,将 CLI 配置为 Maven/Gradle 构建过程的一部分,前提是第一条已经满足;

  • 在每个 pull 请求中使用 GitHub 集成组件验证 API 会增加反馈循环时间。所有这些都增加了向开发人员反馈的时间,并且还有托管 Zally 服务器的人工开销。所以我决定编写自己的 Gradle 插件,它既可以集成在本地开发环境中,也可以集成在 CI 工具中,帮助我验证和提取不同格式的验证结果。

定制 Zally 插件

zally-gradle-plugin 是一个用 kotlin 编写的 Gradle 插件,可以集成到构建脚本中。该插件根据规则集验证规范,并提供 JSON 和 HTML 格式的报告。

该项目包含一个示例任务配置:

// settings.gradle.ktspluginManagement {repositories {gradlePluginPortal()mavenLocal()}}// build.gradke.ktsplugins {id("io.github.thiyagu06") version "1.0.2-dev"}zallyLint {inputSpec = File("${projectDir}/docs/petstore-spec.yml")reports {json {enabled = truedestination = File("${rootDir}/zally/violation.json")}rules {must {max = 10}}}}//executetask./gradlew clean zallyLint``````Run ZallyLint task./gradlew zallyLint

有了这个 Gradle 插件,我就可以在 API 开发过程中实时获得反馈。这使我能够在进入手动检查步骤之前修复 API 的问题。该插件还可以与 CI 作业集成,用于风格指南的检查验证。因为所有开发团队都使用相同的规则,所以组织就可以为用户提供更加一致的 API。该方法大致有如下好处。该插件提供了一个选项,可以将违规报告导出为 JSON 和 HTML 格式。它还提供了一种简单的规则配置方法,用于定义每个严重性级别下规范中可以存在的最大违规数。

可以将 JSON 格式解析并导出到任何数据库中,用于计算 API 设计兼容性得分,并构建一个仪表板,共享给更广泛的组织,作为 API 标准化方案的决策依据。同样,HTML 报告也可以导出到 S3 桶或谷歌云存储,并以网站的形式提供给更广泛的受众。

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件开发
    +关注

    关注

    0

    文章

    581

    浏览量

    27245
  • API
    API
    +关注

    关注

    2

    文章

    1452

    浏览量

    61419
  • 分析器
    +关注

    关注

    0

    文章

    92

    浏览量

    12445

原文标题:简化跨微服务重用,API 标准化过程中的左移法

文章出处:【微信号:AI前线,微信公众号:AI前线】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    国际标准化组织实验室设计技术委员会及中关村标准化协会 莅临东舟技术指导创新发展工作

    2024年6月4日,中关村 标准化协会秘书长黄群、国际 标准化组织实验室设计技术委员会(ISO/TC336)秘书处主任杨廷一行莅临东舟技术。ISOTC336全称国际 标准化组织实验室设计技术委员会(ISOTechnicalCommit
    的头像 发表于06-24 13:44 399次阅读
    国际<b class='flag-5'>标准化</b>组织实验室设计技术委员会及中关村<b class='flag-5'>标准化</b>协会 莅临东舟技术指导创新发展工作

    德力西电气顺利召开国网标准化柜体技术交流会!

    为了以 标准数字 创新服务电网高质量发展,5月24日,德力西电气举办的国网 标准化柜体技术交流会在郑州隆重召开。
    的头像 发表于05-28 10:43 340次阅读

    易华录参编《数据要素流通标准化白皮书(2024)》正式发布

    为加快推动我国数据 标准化工作,5月25日,由国家数据局主办、中国电子技术 标准化研究院承办的第七届数字中国建设峰会“数据 标准化和数据基础设施分论坛-数据 标准化专场”成功召开。
    的头像 发表于05-27 09:45 618次阅读
    易华录参编《数据要素流通<b class='flag-5'>标准化</b>白皮书(2024)》正式发布

    谷歌智能家庭HomeAPI平台推送,兼容Matter设备并支持自动家庭场景应用

    谷歌指出,开发人员有望利用此 API创建一个 标准化的、跨平台且依赖于谷歌智能家居“自动 引擎”的App。消费者只需使用这一款App便能对各类智能家居设备进行管理。
    的头像 发表于05-17 14:55 396次阅读

    Ansys与舍弗勒合作共同实现产品开发流程的数字标准化

    Ansys仿真解决方案将助力舍弗勒在整个企业内实现产品开发流程的数字 标准化
    的头像 发表于02-25 14:01 458次阅读

    华为被传试图放缓6G标准化进程

    有外媒报道称“有传言称,华为试图放慢6G 标准化进程,直到中国在6G产品所需的先进芯片的国产开发方面取得进一步进展。
    发表于02-21 10:04 296次阅读

    Type-C接口标准化背后的欧盟意图

    在当今数字 潮流中,欧洲联盟(欧盟)日益关注电子设备充电接口的 标准化问题。最近,欧盟宣布将全面采用Type-C接口,这一决定引起了广泛关注。Type-C接口的 标准化将对欧洲和全球的电子设备产业带来深远影响,涉及技术创新、用户体验
    的头像 发表于02-02 14:24 295次阅读
    Type-C接口<b class='flag-5'>标准化</b>背后的欧盟意图

    农村供水工程如何实现标准化物联网管理

    根据《水利部办公厅关于推进农村供水工程 标准化管理的通知》《水利部办公厅关于做好2023年度农村供水工程 标准化管理工作的通知》要求,国家水利部于近日公布了全国80处通过 标准化管理评价的农村供水工程名单
    的头像 发表于01-25 10:42 336次阅读
    农村供水工程如何实现<b class='flag-5'>标准化</b>物联网管理   

    光华科技牵头成立电子电路用化学品标准化技术委员会,以高标准助推产业高质量发展

    1月11日至12日,中国材料与试验 标准化委员会(CSTM)电子材料领域 标准技术研讨会暨2023年CSTM/FC51标委会工作年会在汕头召开。活动期间,由光华科技作为牵头单位的“电子电路用化学品 标准化
    的头像 发表于01-15 13:19 491次阅读
    光华科技牵头成立电子电路用化学品<b class='flag-5'>标准化</b>技术委员会,以高<b class='flag-5'>标准</b>助推产业高质量发展

    苏州电科院荣膺中电协“2023电器工业标准化示范企业”称号

    近日,苏州电器科学研究院股份有限公司荣获中国电器工业协会发布的“2023电器工业 标准化示范企业”称号。苏州电科院的入选及最终获评,充分体现了公司作为行业头部优势企业,在 标准化体系建设和 标准引领示范
    的头像 发表于12-28 16:20 495次阅读
    苏州电科院荣膺中电协“2023电器工业<b class='flag-5'>标准化</b>示范企业”称号

    西门子标准化编程和虚拟调试应用

    西门子 标准化编程和虚拟调试应用,西门子 标准化编程、仿真与虚拟调试应用培训PPT。
    发表于11-16 14:58 377次阅读
    西门子<b class='flag-5'>标准化</b>编程和虚拟调试应用

    小场景电源及配套配置标准化规范

    德赢Vwin官网 网站提供《小场景电源及配套配置 标准化规范.pdf》资料免费下载
    发表于11-13 14:23 0次下载
    小场景电源及配套配置<b class='flag-5'>标准化</b>规范

    IEEE标准大会无线短距通信技术与标准化研讨会圆满落幕

    深圳,2023年11月7日 - IEEE 标准大会的无线短距通信技术与 标准化研讨会在深圳市南山区蛇口希尔顿南海酒店成功召开。 会议由深圳市市场监督管理局作为支持单位, IEEE 标准协会和国际星闪无线
    的头像 发表于11-07 19:45 630次阅读
    IEEE<b class='flag-5'>标准</b>大会无线短距通信技术与<b class='flag-5'>标准化</b>研讨会圆满落幕

    燧原科技当选上海市人工智能标准化技术委员会委员

    近期,上海市人工智能 标准化技术委员会第一届第二次全体会议在张江科学会堂顺利召开, 燧原科技全票增补当选为上海市人工智能 标准化技术委员会的委员 。标委会主任委员、上海市经济和信息 委员会副主任张英
    的头像 发表于11-01 14:45 674次阅读
    燧原科技当选上海市人工智能<b class='flag-5'>标准化</b>技术委员会委员

    奥动新能源拜访中国汽车标准化研究院,深度交流电动汽车换电标准

    天津2023年9月14日 /美通社/ -- 2023年9月12日,奥动新能源联合创始人兼副董事长杨烨一行,拜访中汽中心中国汽车 标准化研究院(以下简称" 标准院"),双方就电动汽车换电 标准领域,尤其是
    的头像 发表于09-14 19:40 525次阅读
    奥动新能源拜访中国汽车<b class='flag-5'>标准化</b>研究院,深度交流电动汽车换电<b class='flag-5'>标准</b>