nginx支援這樣的功能 即可以修改repsonse的內容嗎?
例如剛開始介面回傳的內容是這樣
"data" : {
"totalAmount" : 49, // 用户累积所中金额
"remainingCount" : 3 // 当天剩余抽奖次数
}
後面又增加了一個新的屬性--總抽獎次數
,於是想將之前的remainingCount
改成更貼切的todayRemainingCount
"todayRemainingCount" : 3 // 当天剩余抽奖次数
"totalRemainingCount" : 10 // 总剩余抽奖次数
但上線過程中服務端先上線, 接著H5再上線, 於是在此期間,H5會解析不到remainingCount
,影響正常線上業務邏輯。
所以想在此期間透過nginx
來做臨時處理使得可以平滑升級, 如解析服務端介面基於todayRemainingCount
自動建立一個remainingCount
屬性這樣可以相容舊接口如下所示
"todayRemainingCount" : 3 // 当天剩余抽奖次数
"remainingCount" : 3 // 当天剩余抽奖次数 兼容旧接口
"totalRemainingCount" : 10 // 总剩余抽奖次数
等H5上線後 再取消此臨時限制。
怪我咯2017-05-16 17:16:10
可以,看看 https://openresty.org/en/
你這種需求還是用程序作判斷處理,或者多加個開關之類的比較好吧。
線上的 nginx 也不會隨便改配置。
PHP中文网2017-05-16 17:16:10
看你的需求,介面直接同時輸出remainingCount和todayRemainingCount兩項就可以了啊,調取介面的不管用哪個都能取到值,等你都部署好了之後再把介面回傳的remainingCount去掉就行了
PHP中文网2017-05-16 17:16:10
同事給了一個解決方案。
這是典型的介面模型該考慮的相容。 不建議放到nginx。如:
public class Output {
private int todayRemaingCount;
private int totalRemaingCount;
// getter/setter methods;
// 下一个版本升级,去掉此方法,预计在10.17。
@Deprecated
public int getRemainingCount() {
return todayRemaingCount;
}
}