Can nginx modify the content of replysonse?
大家讲道理
大家讲道理 2017-05-16 17:14:10
0
4
575

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.

大家讲道理
大家讲道理

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

reply all(4)
刘奇

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.

洪涛

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

洪涛

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;
    }

}
洪涛

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

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template