鍍金池/ 問(wèn)答/Java  PHP  Python  HTML/ api接口在修改之后變更了返回的數(shù)據(jù)結(jié)構(gòu)怎么辦?

api接口在修改之后變更了返回的數(shù)據(jù)結(jié)構(gòu)怎么辦?

情況是這樣的:
我在修改了一個(gè)功能接口后,連同返回的數(shù)據(jù)結(jié)構(gòu)都變了
然后
之前的接口還在線上用著
我不可能直接修改原接口,不然之前的功能就會(huì)出問(wèn)題
那么我只能再新建一個(gè)接口用于修改后的功能
但是這種情況如果多了會(huì)不會(huì)造成大量廢棄的接口同時(shí)在生產(chǎn)環(huán)境
如何更好地區(qū)分升級(jí)前和升級(jí)后的接口?

回答
編輯回答
雨蝶
但是這種情況如果多了會(huì)不會(huì)造成大量廢棄的接口同時(shí)在生產(chǎn)環(huán)境

首先這里其實(shí)是3件事,一件叫兼容以前的版本,一件叫新增一個(gè)功能,一件叫廢棄之前的版本。

  1. 如果你要兼容,那不叫廢棄的接口,當(dāng)然這里不符合題主需求。
  2. 樓主這里其實(shí)是新增一個(gè)功能(盡管他跟原有的功能可能很相似),直接新加就行了。
  3. 而如果你要廢棄,則可以屏蔽掉舊版本代碼(一般是幾次迭代之后,有足夠的警告說(shuō)明你要廢棄此接口,而通常還不是很好用)

這是比較沒(méi)有辦法的事情。主要寫(xiě)好文檔,每個(gè)系統(tǒng)版本的文檔里寫(xiě)清楚接口的支持和廢棄。

2017年11月18日 12:52
編輯回答
不將就

借助外部傳送的參數(shù)來(lái)判斷呢? 加個(gè)參數(shù),比如說(shuō)是版本號(hào)之類(lèi)的,這樣是否能解決,如果沒(méi)有這個(gè)參數(shù),證明是之前的邏輯,如果添加了這個(gè)參數(shù),根據(jù)版本號(hào)來(lái)走不同的邏輯 這樣實(shí)現(xiàn)是否可以,不過(guò)我們這邊也是如此的,也是寫(xiě)個(gè)新的接口來(lái)實(shí)現(xiàn)- -

2017年1月26日 21:22
編輯回答
法克魷

可以用一個(gè)版本號(hào)來(lái)做區(qū)分,比如V1、V2這樣就 不會(huì)起名困難,也比較符合你現(xiàn)在的情況

2017年2月10日 21:50