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

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

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

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

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

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

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

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

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

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

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

2017年2月10日 21:50