nginx可以修改repsonse的內容嗎?
大家讲道理
大家讲道理 2017-05-16 17:14:10
0
4
586

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上線後 再取消此臨時限制。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(4)
刘奇

可以,看看 https://openresty.org/en/
你這種需求還是用程序作判斷處理,或者多加個開關之類的比較好吧。
線上的 nginx 也不會隨便改配置。

洪涛

看你的需求,介面直接同時輸出remainingCount和todayRemainingCount兩項就可以了啊,調取介面的不管用哪個都能取到值,等你都部署好了之後再把介面回傳的remainingCount去掉就行了

洪涛

同事給了一個解決方案。

這是典型的介面模型該考慮的相容。 不建議放到nginx。如:

public class Output {

    private int todayRemaingCount;
    private int totalRemaingCount;

    // getter/setter methods;

    // 下一个版本升级,去掉此方法,预计在10.17。
    @Deprecated
    public int getRemainingCount() {
        return todayRemaingCount;
    }

}
洪涛

還是在業務層做處理吧,不建議修改nginx

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板