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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是API標準化?

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

什么是 API 標準化?

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

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

  1. 微軟 REST API 指南

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

為什么要標準化?

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

清晰一致的 API 設計標準是良好開發(fā)體驗和消費體驗的基礎。它們使開發(fā)人員和消費者都能夠快速有效地理解 API,縮短學習曲線,并按照一套指南進行構建。

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

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

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

API 標準化之旅

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

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

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

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

什么是左移法?

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

Open API 驗證器

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

將 API 標準或風格指南表示成一組規(guī)則。這里有 Zalando 提供的一份指南;

根據 OpenAPI 編寫 API;

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

Zally 是什么?

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

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

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

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

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

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

Zally Gradle 插件背后的動機

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

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

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

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

定制 Zally 插件

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

該項目包含一個示例任務配置:

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

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

審核編輯 :李倩


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

    關注

    0

    文章

    586

    瀏覽量

    27276
  • API
    API
    +關注

    關注

    2

    文章

    1461

    瀏覽量

    61490
  • 分析器
    +關注

    關注

    0

    文章

    92

    瀏覽量

    12455

原文標題:簡化跨微服務重用,API 標準化過程中的左移法

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

收藏 人收藏

    評論

    相關推薦

    工信部引領未來科技浪潮,腦機接口標準化技術委員會籌建方案揭曉

    機接口標準化技術委員會籌建方案”(以下簡稱“方案”),標志著我國在腦機接口標準化道路上邁出了堅實的一步。
    的頭像 發(fā)表于 07-02 14:13 ?245次閱讀

    國際標準化組織實驗室設計技術委員會及中關村標準化協(xié)會 蒞臨東舟技術指導創(chuàng)新發(fā)展工作

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

    德力西電氣順利召開國網標準化柜體技術交流會!

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

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

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

    谷歌智能家庭Home API平臺推送,兼容Matter設備并支持自動家庭場景應用

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

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

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

    華為被傳試圖放緩6G標準化進程

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

    Type-C接口標準化背后的歐盟意圖

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

    農村供水工程如何實現(xiàn)標準化物聯(lián)網管理 ?

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

    光華科技牽頭成立電子電路用化學品標準化技術委員會,以高標準助推產業(yè)高質量發(fā)展

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

    蘇州電科院榮膺中電協(xié)“2023電器工業(yè)標準化示范企業(yè)”稱號

    近日,蘇州電器科學研究院股份有限公司榮獲中國電器工業(yè)協(xié)會發(fā)布的“2023電器工業(yè)標準化示范企業(yè)”稱號。蘇州電科院的入選及最終獲評,充分體現(xiàn)了公司作為行業(yè)頭部優(yōu)勢企業(yè),在標準化體系建設和標準引領示范
    的頭像 發(fā)表于 12-28 16:20 ?532次閱讀
    蘇州電科院榮膺中電協(xié)“2023電器工業(yè)<b class='flag-5'>標準化</b>示范企業(yè)”稱號

    西門子標準化編程和虛擬調試應用

    西門子標準化編程和虛擬調試應用,西門子標準化編程、仿真與虛擬調試應用培訓PPT。
    發(fā)表于 11-16 14:58 ?418次閱讀
    西門子<b class='flag-5'>標準化</b>編程和虛擬調試應用

    小場景電源及配套配置標準化規(guī)范

    電子發(fā)燒友網站提供《小場景電源及配套配置標準化規(guī)范.pdf》資料免費下載
    發(fā)表于 11-13 14:23 ?0次下載
    小場景電源及配套配置<b class='flag-5'>標準化</b>規(guī)范

    IEEE標準大會無線短距通信技術與標準化研討會圓滿落幕

    深圳,2023年11月7日 - IEEE標準大會的無線短距通信技術與標準化研討會在深圳市南山區(qū)蛇口希爾頓南海酒店成功召開。 會議由深圳市市場監(jiān)督管理局作為支持單位, IEEE標準協(xié)會和國際星閃無線
    的頭像 發(fā)表于 11-07 19:45 ?660次閱讀
    IEEE<b class='flag-5'>標準</b>大會無線短距通信技術與<b class='flag-5'>標準化</b>研討會圓滿落幕

    燧原科技當選上海市人工智能標準化技術委員會委員

    近期,上海市人工智能標準化技術委員會第一屆第二次全體會議在張江科學會堂順利召開, 燧原科技全票增補當選為上海市人工智能標準化技術委員會的委員 。標委會主任委員、上海市經濟和信息委員會副主任張英
    的頭像 發(fā)表于 11-01 14:45 ?733次閱讀
    燧原科技當選上海市人工智能<b class='flag-5'>標準化</b>技術委員會委員