Home  >  Q&A  >  body text

Can nginx modify the content of replysonse?

Does nginx support such a function, that is, can the content of reply be modified?

For example, the content returned by the interface at the beginning is like this

   "data" : {
      "totalAmount" : 49,  // 用户累积所中金额
      "remainingCount" : 3 // 当天剩余抽奖次数
   }

A new attribute was added at the end--Total number of draws, so I wanted to change the previous remainingCount to a more appropriate todayRemainingCount

      "todayRemainingCount" : 3 // 当天剩余抽奖次数
      "totalRemainingCount" : 10 // 总剩余抽奖次数

However, during the online process, the server comes online first, and then H5 comes online. Therefore, during this period, H5 will not be able to parse remainingCount, affecting the normal online business logic.

So I want to do some temporary processing through nginx during this period to make the upgrade smooth, such as parsing the server interface to automatically create a remainingCount attribute based on todayRemainingCount This is compatible with the old interface as shown below

      "todayRemainingCount" : 3 // 当天剩余抽奖次数
      "remainingCount" : 3 // 当天剩余抽奖次数 兼容旧接口
      "totalRemainingCount" : 10 // 总剩余抽奖次数

Wait until H5 goes online before canceling this temporary restriction.

大家讲道理大家讲道理2734 days ago548

reply all(4)I'll reply

  • 怪我咯

    怪我咯2017-05-16 17:16:10

    Okay, take a look at https://openresty.org/en/
    For your needs, it’s better to use a program to judge and handle it, or add an extra switch or something.
    Online nginx will not change the configuration casually.

    reply
    0
  • PHP中文网

    PHP中文网2017-05-16 17:16:10

    Depending on your needs, the interface can directly output both remainingCount and todayRemainingCount at the same time. No matter which interface you use to call the interface, you can get the value. After you have deployed everything, just remove the remainingCount returned by the interface

    reply
    0
  • PHP中文网

    PHP中文网2017-05-16 17:16:10

    A colleague gave me a solution.

    This is a typical interface model that should be considered for compatibility. It is not recommended to put it on nginx. For example:

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

    reply
    0
  • PHP中文网

    PHP中文网2017-05-16 17:16:10

    It is better to do the processing at the business layer. It is not recommended to modify nginx

    reply
    0
  • Cancelreply