大廠如何做REST API的版本管理

2021-10-10 03:26:43 字數 2958 閱讀 1102

翻譯文章

how are rest apis versioned?

我目前正在研究乙個 rest api,並且提出了乙個問題,如何以及應該如何對 rest api 進行版本化?這是我的研究結果。

似乎有很多人推薦使用內容協商(http「 accept: 」 header)進行 api 版本控制。然而,我所關注的大型公共 rest api 似乎都沒有使用這種方法。他們幾乎完全將 api 版本號放在 uri 中,只有乙個例外,即使用自定義 http 標頭。我不知道如何解釋這種脫節。

帖子版本控制策略

stack overflow 1

uristack overflow 2

content negotiation

blog post by jeremy

content negotiation

ycombinator discussion

建議使用兩種

stack overflow 3

content negotiation

stack overflow 4

content negotiation

notmessenger blog post

uri (反對所有頭標)

peter williams

content negotiation (強烈反對 uris)

apigee blog post on api versioning

urinick berardi on rest versioning

urirestify

「accept-version」 header

tom maguire on rest versioning

content negotiation

nicholas zakas on rest versioning

uristeve klabnik on rest versioning

content negotiation + hateos

luis rei on rest versioning

content negotiation with (;version=1.0)

kohana forum discussion on rest versioning

許多建議

troy hunt on rest versioning

接受請求頭同事也支援自定義請求頭和url

paul gear rest versioning

用 hateos 方法推薦本質上無版本的可擴充套件性

廠家版本控制策略

示例uri

支付寶請求引數

公共請求引數 version

**請求引數v京東

請求引數v抖音

庫名稱版本控制策略

示例node-restify

semver versioning in an accept-version header

accept-version: ~3

jersey

description of how to do accept: header versioning in jersey

如何做研究

來自 在研究生期間,一開始大家都很迷惑,都不知道自己要幹什麼 該幹什麼?即便知道自己要幹什麼,也不知道從哪幹起?上次兩位老師跟我們交流了一下,下面是他們的心得 給乙個專案 解決方案 問題分塊 任務明細 一開始並不是所有的問題都會想到,但是起碼要有乙個大體的框架在心中,然後細化模組,對每乙個功能進行細...

如何做專案

1,以業務規則為綱,而不是業務實體 2,在思考和設計業務規則的時候,以業務核心為綱,什麼是業務核心,定義為,當前你最關注的,當前最不確定的那一部分。所以我現在不喜歡領域驅動,我喜歡業務驅動 其實可能二者是一碼事 那麼我這裡所說的業務驅動要怎麼驅動法呢?就先以上面兩條為起頭,然後再來說,業務規則,以找...

如何做行業的高手?

能夠在職業的專業方面有傑出成就的人,生涯往往是最 無趣 的。他們從職業之初開始做一件事情,反覆磨練,沒轉行,沒跳槽,無職業規劃,不和人競爭 突然有一天,他們聲名鵲起,就成了高手。小野二郎,就是這麼乙個人。2011年,日本拍了一部紀錄片叫 壽司之神 說的就是他的故事。小野二郎二戰後回國,開始學做壽司,...