0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是API標(biāo)準(zhǔn)化?

jf_WZTOguxH ? 來源:AI前線 ? 作者:Thiyagarajan Kamaraj ? 2022-11-02 13:51 ? 次閱讀

什么是 API 標(biāo)準(zhǔn)化?

API 設(shè)計就是創(chuàng)建一個有效的接口,使你可以更好地維護(hù)和實現(xiàn) API,同時使消費者能夠輕松地使用這個 API。

一致的 API 設(shè)計意味著,在組織或團(tuán)隊中對所有 API 及其公開的資源進(jìn)行標(biāo)準(zhǔn)化設(shè)計。它是開發(fā)人員、架構(gòu)師和技術(shù)作者共同遵守的藍(lán)圖,可以保證在 API 使用過程中品牌和體驗的一致性。風(fēng)格指南旨在確保 API 設(shè)計和實現(xiàn)方式的一致性,組織就是用它來標(biāo)準(zhǔn)化設(shè)計。下面是比較流行的兩份風(fēng)格指南:

  1. 微軟 REST API 指南

  2. 谷歌 API 設(shè)計指南在業(yè)余項目里,為了開發(fā)出一致的 API,并遵循 API 開發(fā)的行業(yè)最佳實踐,我經(jīng)常參考這本風(fēng)格手冊。

為什么要標(biāo)準(zhǔn)化?

清晰的設(shè)計方法可以確保 API 與業(yè)務(wù)需求相一致。API 越標(biāo)準(zhǔn),歧義就越少,合作成果就越多,質(zhì)量就更有保障,API 的采用也會相應(yīng)增加。

清晰一致的 API 設(shè)計標(biāo)準(zhǔn)是良好開發(fā)體驗和消費體驗的基礎(chǔ)。它們使開發(fā)人員和消費者都能夠快速有效地理解 API,縮短學(xué)習(xí)曲線,并按照一套指南進(jìn)行構(gòu)建。

API 標(biāo)準(zhǔn)化還可以改善團(tuán)隊協(xié)作,提供提升準(zhǔn)確性和降低延遲的指導(dǎo)原則,有助于降低總開發(fā)成本。標(biāo)準(zhǔn)對于 API 策略的成功如此重要,以至于許多科技公司(如微軟、谷歌和 IBM)以及行業(yè)組織(如 SWIFT、TMForum 和 IATA)都使用并支持 OpenAPI 規(guī)范(OAS),并將其作為定義 RESTful API 的基本標(biāo)準(zhǔn)。

如果不進(jìn)行標(biāo)準(zhǔn)化,那么個體開發(fā)人員在設(shè)計過程中就可以隨意選擇。雖然我們鼓勵創(chuàng)造,但如果沒有適當(dāng)?shù)娘L(fēng)格指南,很快就會變得混亂。

如果不進(jìn)行標(biāo)準(zhǔn)化,那么組織就無法在 API 設(shè)計和交付過程中提供質(zhì)量保證。強化設(shè)計標(biāo)準(zhǔn)有助于提升預(yù)測成功結(jié)果的能力,讓組織能夠在保證質(zhì)量的前提下快速擴(kuò)展 API 開發(fā)。

API 標(biāo)準(zhǔn)化之旅

如果沒有一個正式的流程來強化標(biāo)準(zhǔn)化,就不可能成功地擴(kuò)展 API 設(shè)計和開發(fā)過程,也不可能符合監(jiān)管和行業(yè)標(biāo)準(zhǔn)。API 設(shè)計風(fēng)格指南提供了內(nèi)外部團(tuán)隊在構(gòu)建 API 定義和重用資產(chǎn)時開展協(xié)作所需的“護(hù)欄”。

最初,組織在內(nèi)部以 PDF 或 Wiki 的形式發(fā)布 API 指南,供所有人參考,并制定相應(yīng)的流程以確保團(tuán)隊遵循設(shè)計指南。確保開發(fā)一致性的一種方案是在 API 開發(fā)期間進(jìn)行人工評審。

API 以 OpenAPI 格式指定,并在版本控制系統(tǒng)中維護(hù),API 定義可以遵循與其他代碼工件相同的評審過程。開發(fā)人員可以為 API 更改創(chuàng)建 pull 請求,并讓同事提供反饋。這個過程是手動的,是保障治理以及確保遵循 API 指南的有效方法,但與所有手動過程一樣,它容易受人為錯誤所影響,而且有時候不及時。

等待同事評審 API 更改可能會導(dǎo)致周期變慢,對開發(fā)人員的工作效率產(chǎn)生不利的影響,特別是涉及到評審過程中可以自動化的方面時。當(dāng)組織規(guī)模擴(kuò)大,更多的開發(fā)人員開始參與 API 開發(fā)時,這個過程也無法擴(kuò)展。在這種情況下,可以提供 API 自動評審的左移法就很有用了。就像我們對其他工件所做的那樣,借助一些自動化工具或分析器盡早獲得反饋,這樣最好了。

什么是左移法?

術(shù)語“左移”指的是軟件開發(fā)中的一種實踐。在這種實踐中,團(tuán)隊會比以往更早地開始測試,幫助自己聚焦質(zhì)量,致力于問題預(yù)防而不是檢測。左移的目標(biāo)是提高質(zhì)量,縮短漫長的測試周期,并降低在開發(fā)周期結(jié)束時(或者更糟,在生產(chǎn)環(huán)境中)出現(xiàn)令人不快的意外情況的可能性。

Open API 驗證器

說到 OpenAPI 分析器,我見過一些。它們將 API 風(fēng)格指南轉(zhuǎn)換為一組規(guī)則,并根據(jù) Open API 規(guī)范進(jìn)行驗證。這些分析器允許你根據(jù)組織風(fēng)格指南自定義規(guī)則。一個名為 Zally 的分析器引起了我的注意,它是一個用 Kotlin 編寫的工具,由 Zalando 開源。OpenAPI 風(fēng)格指南驗證器的工作流程如下:

將 API 標(biāo)準(zhǔn)或風(fēng)格指南表示成一組規(guī)則。這里有 Zalando 提供的一份指南;

根據(jù) OpenAPI 編寫 API;

像 Zally、SonarQube、Spectra 這樣的檢測工具可以驗證開發(fā)人員編寫的 OpenAPI 規(guī)范是否符合第 1 步中定義的規(guī)范規(guī)則。

Zally 是什么?

Zally 是一個簡單易用的 API 分析器。它的標(biāo)準(zhǔn)配置是根據(jù) Zalando RESTful 指南中定義的規(guī)則檢查 API,對任何人來說都是開箱即用的。它具有可擴(kuò)展性,允許我們添加自己的規(guī)則集。它還提供以下特性:

  • 根據(jù)需要在服務(wù)器端啟用 / 禁用規(guī)則;

  • 接受 JSON 和 YAML 格式的 Swagger V2 和 OpenAPI V3 規(guī)范;

  • 可以編寫并插入自己的規(guī)則;

  • 直觀的 Web UI 顯示了實現(xiàn)的規(guī)則和規(guī)范驗證的結(jié)果;

  • 使用 Web 鉤子集成 GitHub,驗證每個 pull 請求中的 OpenAPI,并在評論中回顯違規(guī)情況。

Zally Gradle 插件背后的動機

雖然 Zally 的編寫方式更具可擴(kuò)展性和可定制性,但我覺得,我們?nèi)匀豢梢赃M(jìn)一步改進(jìn) Zally 當(dāng)前的驗證工作流,縮短開發(fā)反饋循環(huán)。由于 Zally 缺少像 checkstyle、ktlint、spot bug 這樣的插件,所以我在使用 Zally 時遇到了以下幾個痛點:

  • 為了使用 CLI 工具,開發(fā)人員需要在本地或遠(yuǎn)程系統(tǒng)上托管 Zally 服務(wù)器;

  • 開發(fā)人員需要切換運行 CLI 工具的上下文,或是額外做一些工作,將 CLI 配置為 Maven/Gradle 構(gòu)建過程的一部分,前提是第一條已經(jīng)滿足;

  • 在每個 pull 請求中使用 GitHub 集成組件驗證 API 會增加反饋循環(huán)時間。所有這些都增加了向開發(fā)人員反饋的時間,并且還有托管 Zally 服務(wù)器的人工開銷。所以我決定編寫自己的 Gradle 插件,它既可以集成在本地開發(fā)環(huán)境中,也可以集成在 CI 工具中,幫助我驗證和提取不同格式的驗證結(jié)果。

定制 Zally 插件

zally-gradle-plugin 是一個用 kotlin 編寫的 Gradle 插件,可以集成到構(gòu)建腳本中。該插件根據(jù)規(guī)則集驗證規(guī)范,并提供 JSON 和 HTML 格式的報告。

該項目包含一個示例任務(wù)配置:

// settings.gradle.kts
pluginManagement {
    repositories {
        gradlePluginPortal()
        mavenLocal()
    }
}


// build.gradke.kts
plugins {
    id("io.github.thiyagu06") version "1.0.2-dev"
}


zallyLint {
    inputSpec = File("${projectDir}/docs/petstore-spec.yml")
    reports {
        json {
            enabled = true
            destination = File("${rootDir}/zally/violation.json")
        }
        rules {
            must {
               max = 10
            }
        }
    }
}


//execute task
./gradlew clean zallyLint


```
```
Run ZallyLint task
./gradlew zallyLint

有了這個 Gradle 插件,我就可以在 API 開發(fā)過程中實時獲得反饋。這使我能夠在進(jìn)入手動檢查步驟之前修復(fù) API 的問題。該插件還可以與 CI 作業(yè)集成,用于風(fēng)格指南的檢查驗證。因為所有開發(fā)團(tuán)隊都使用相同的規(guī)則,所以組織就可以為用戶提供更加一致的 API。該方法大致有如下好處。該插件提供了一個選項,可以將違規(guī)報告導(dǎo)出為 JSON 和 HTML 格式。它還提供了一種簡單的規(guī)則配置方法,用于定義每個嚴(yán)重性級別下規(guī)范中可以存在的最大違規(guī)數(shù)。

可以將 JSON 格式解析并導(dǎo)出到任何數(shù)據(jù)庫中,用于計算 API 設(shè)計兼容性得分,并構(gòu)建一個儀表板,共享給更廣泛的組織,作為 API 標(biāo)準(zhǔn)化方案的決策依據(jù)。同樣,HTML 報告也可以導(dǎo)出到 S3 桶或谷歌云存儲,并以網(wǎng)站的形式提供給更廣泛的受眾。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 軟件開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    614

    瀏覽量

    27362
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1501

    瀏覽量

    62025
  • 分析器
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    12493

原文標(biāo)題:簡化跨微服務(wù)重用,API 標(biāo)準(zhǔn)化過程中的左移法

文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    三星與SK海力士攜手推進(jìn)LPDDR6-PIM產(chǎn)品標(biāo)準(zhǔn)化

    據(jù)外媒最新報道,韓國兩大存儲芯片巨頭三星電子與SK海力士已正式結(jié)盟,共同致力于推動LPDDR6的存內(nèi)計算(Processing In Memory,簡稱PIM)產(chǎn)品的標(biāo)準(zhǔn)化進(jìn)程。此舉旨在加速人工智能
    的頭像 發(fā)表于 12-03 10:42 ?239次閱讀

    芯??萍家I(lǐng)智能浪潮:標(biāo)準(zhǔn)化單鍵壓力按鍵解決方案賦能終端創(chuàng)新

    芯海科技憑借其敏銳的市場洞察力和深厚的技術(shù)積累,推出了“標(biāo)準(zhǔn)化單鍵壓力按鍵”解決方案,為終端客戶帶來前所未有的便捷與創(chuàng)新。
    的頭像 發(fā)表于 11-28 09:34 ?215次閱讀
    芯??萍家I(lǐng)智能<b class='flag-5'>化</b>浪潮:<b class='flag-5'>標(biāo)準(zhǔn)化</b>單鍵壓力按鍵解決方案賦能終端創(chuàng)新

    CAN技術(shù)的標(biāo)準(zhǔn)化之旅

    國際標(biāo)準(zhǔn)化組織 (ISO)于2024年5月27日發(fā)布了文件ISO 11898-1:2024;在此之前,于2024年3月22日,發(fā)布了文件ISO 11898-2:2024。自此,CAN (控制器局域網(wǎng)絡(luò))技術(shù)的所有協(xié)議及收發(fā)器完全納入ISO標(biāo)準(zhǔn),標(biāo)志著CAN
    的頭像 發(fā)表于 11-07 11:48 ?407次閱讀

    淺談虛擬電廠標(biāo)準(zhǔn)化現(xiàn)狀與需求分析

    了虛擬電廠各環(huán)節(jié)的標(biāo)準(zhǔn)化現(xiàn)狀,依據(jù)自上而下和自下而上的系統(tǒng)工程方法,結(jié)合引導(dǎo)性、協(xié)調(diào)性、系統(tǒng)性和開放性的虛擬電廠標(biāo)準(zhǔn)體系構(gòu)建原則,設(shè)計了涵蓋15個子類、52個標(biāo)準(zhǔn)系列的體系架構(gòu),并基于未來需求分析提出了重點布局
    的頭像 發(fā)表于 10-16 15:35 ?442次閱讀
    淺談虛擬電廠<b class='flag-5'>標(biāo)準(zhǔn)化</b>現(xiàn)狀與需求分析

    博世攜手Tenstorrent共研汽車芯片標(biāo)準(zhǔn)化方案

    Tenstorrent的高管透露,德國工業(yè)巨頭博世將與美國的芯片初創(chuàng)企業(yè)Tenstorrent攜手,共同打造一個平臺,旨在標(biāo)準(zhǔn)化汽車芯片的構(gòu)建模塊——Chiplet
    的頭像 發(fā)表于 10-14 16:31 ?691次閱讀

    wms智能倉儲管理系統(tǒng)標(biāo)準(zhǔn)化流程

    wms智能倉儲管理系統(tǒng)標(biāo)準(zhǔn)化流程的標(biāo)準(zhǔn)化流程通常包括以下幾個主要步驟: 需求分析:與客戶充分溝通,了解其倉儲管理需求和業(yè)務(wù)流程,確定系統(tǒng)功能和特性的需求,制定系統(tǒng)開發(fā)和實施計劃。 系統(tǒng)設(shè)計:根據(jù)需求
    的頭像 發(fā)表于 10-14 16:22 ?244次閱讀

    國際標(biāo)準(zhǔn)化組織實驗室設(shè)計技術(shù)委員會及中關(guān)村標(biāo)準(zhǔn)化協(xié)會 蒞臨東舟技術(shù)指導(dǎo)創(chuàng)新發(fā)展工作

    2024年6月4日,中關(guān)村標(biāo)準(zhǔn)化協(xié)會秘書長黃群、國際標(biāo)準(zhǔn)化組織實驗室設(shè)計技術(shù)委員會(ISO/TC336)秘書處主任楊廷一行蒞臨東舟技術(shù)。ISOTC336全稱國際標(biāo)準(zhǔn)化組織實驗室設(shè)計技術(shù)委員會(ISOTechnicalCommit
    的頭像 發(fā)表于 06-24 13:44 ?653次閱讀
    國際<b class='flag-5'>標(biāo)準(zhǔn)化</b>組織實驗室設(shè)計技術(shù)委員會及中關(guān)村<b class='flag-5'>標(biāo)準(zhǔn)化</b>協(xié)會 蒞臨東舟技術(shù)指導(dǎo)創(chuàng)新發(fā)展工作

    德力西電氣順利召開國網(wǎng)標(biāo)準(zhǔn)化柜體技術(shù)交流會!

    為了以標(biāo)準(zhǔn)數(shù)字創(chuàng)新服務(wù)電網(wǎng)高質(zhì)量發(fā)展,5月24日,德力西電氣舉辦的國網(wǎng)標(biāo)準(zhǔn)化柜體技術(shù)交流會在鄭州隆重召開。
    的頭像 發(fā)表于 05-28 10:43 ?623次閱讀

    易華錄參編《數(shù)據(jù)要素流通標(biāo)準(zhǔn)化白皮書(2024)》正式發(fā)布

    為加快推動我國數(shù)據(jù)標(biāo)準(zhǔn)化工作,5月25日,由國家數(shù)據(jù)局主辦、中國電子技術(shù)標(biāo)準(zhǔn)化研究院承辦的第七屆數(shù)字中國建設(shè)峰會“數(shù)據(jù)標(biāo)準(zhǔn)化和數(shù)據(jù)基礎(chǔ)設(shè)施分論壇-數(shù)據(jù)標(biāo)準(zhǔn)化專場”成功召開。
    的頭像 發(fā)表于 05-27 09:45 ?801次閱讀
    易華錄參編《數(shù)據(jù)要素流通<b class='flag-5'>標(biāo)準(zhǔn)化</b>白皮書(2024)》正式發(fā)布

    谷歌智能家庭Home API平臺推送,兼容Matter設(shè)備并支持自動家庭場景應(yīng)用

    谷歌指出,開發(fā)人員有望利用此API創(chuàng)建一個標(biāo)準(zhǔn)化的、跨平臺且依賴于谷歌智能家居“自動引擎”的App。消費者只需使用這一款A(yù)pp便能對各類智能家居設(shè)備進(jìn)行管理。
    的頭像 發(fā)表于 05-17 14:55 ?609次閱讀

    Ansys與舍弗勒合作共同實現(xiàn)產(chǎn)品開發(fā)流程的數(shù)字標(biāo)準(zhǔn)化

    Ansys仿真解決方案將助力舍弗勒在整個企業(yè)內(nèi)實現(xiàn)產(chǎn)品開發(fā)流程的數(shù)字標(biāo)準(zhǔn)化
    的頭像 發(fā)表于 02-25 14:01 ?747次閱讀

    華為被傳試圖放緩6G標(biāo)準(zhǔn)化進(jìn)程

    有外媒報道稱“有傳言稱,華為試圖放慢6G標(biāo)準(zhǔn)化進(jìn)程,直到中國在6G產(chǎn)品所需的先進(jìn)芯片的國產(chǎn)開發(fā)方面取得進(jìn)一步進(jìn)展。
    發(fā)表于 02-21 10:04 ?470次閱讀

    Type-C接口標(biāo)準(zhǔn)化背后的歐盟意圖

    在當(dāng)今數(shù)字潮流中,歐洲聯(lián)盟(歐盟)日益關(guān)注電子設(shè)備充電接口的標(biāo)準(zhǔn)化問題。最近,歐盟宣布將全面采用Type-C接口,這一決定引起了廣泛關(guān)注。Type-C接口的標(biāo)準(zhǔn)化將對歐洲和全球的電子設(shè)備產(chǎn)業(yè)帶來深遠(yuǎn)影響,涉及技術(shù)創(chuàng)新、用戶體驗
    的頭像 發(fā)表于 02-02 14:24 ?473次閱讀
    Type-C接口<b class='flag-5'>標(biāo)準(zhǔn)化</b>背后的歐盟意圖

    農(nóng)村供水工程如何實現(xiàn)標(biāo)準(zhǔn)化物聯(lián)網(wǎng)管理 ?

    根據(jù)《水利部辦公廳關(guān)于推進(jìn)農(nóng)村供水工程標(biāo)準(zhǔn)化管理的通知》《水利部辦公廳關(guān)于做好2023年度農(nóng)村供水工程標(biāo)準(zhǔn)化管理工作的通知》要求,國家水利部于近日公布了全國80處通過標(biāo)準(zhǔn)化管理評價的農(nóng)村供水工程名單
    的頭像 發(fā)表于 01-25 10:42 ?448次閱讀
    農(nóng)村供水工程如何實現(xiàn)<b class='flag-5'>標(biāo)準(zhǔn)化</b>物聯(lián)網(wǎng)管理  ?

    光華科技牽頭成立電子電路用化學(xué)品標(biāo)準(zhǔn)化技術(shù)委員會,以高標(biāo)準(zhǔn)助推產(chǎn)業(yè)高質(zhì)量發(fā)展

    1月11日至12日,中國材料與試驗標(biāo)準(zhǔn)化委員會(CSTM)電子材料領(lǐng)域標(biāo)準(zhǔn)技術(shù)研討會暨2023年CSTM/FC51標(biāo)委會工作年會在汕頭召開?;顒悠陂g,由光華科技作為牽頭單位的“電子電路用化學(xué)品標(biāo)準(zhǔn)化
    的頭像 發(fā)表于 01-15 13:19 ?686次閱讀
    光華科技牽頭成立電子電路用化學(xué)品<b class='flag-5'>標(biāo)準(zhǔn)化</b>技術(shù)委員會,以高<b class='flag-5'>標(biāo)準(zhǔn)</b>助推產(chǎn)業(yè)高質(zhì)量發(fā)展