Skip to main content
Version: 2.4.1

Custom Response

Description#

  • This doc offers examples for customising response structure in Apache ShenYu gateway.
  • The response body structure in gateways should be unified, it is recommended for specify yours.

Default Implementation#

  • The default implementation class is org.apache.shenyu.plugin.api.result.DefaultShenyuResult.
  • Following is the response structure:
public class ShenyuDefaultEntity implements Serializable {
    private static final long serialVersionUID = -2792556188993845048L;
    private Integer code;
    private String message;
    private Object data;
}
  • The returned json as follows:
{    "code": -100, //response code,    "message": "Your parameter error, please check the relevant documentation!", //hint messages    "data": null  // business data}

Extensions#

  • Declare a new class named CustomShenyuResult and implements org.apache.shenyu.plugin.api.result.ShenyuResult
 public interface ShenyuResult<T> {      /**      * Success t.      *      * @param code    the code      * @param message the message      * @param object  the object      * @return the t      */     T success(int code, String message, Object object);
     /**      * Error t.      *      * @param code    the code      * @param message the message      * @param object  the object      * @return the t      */     T error(int code, String message, Object object); }
  • T is a generic parameter for your response data.
  • Register defined class as a Spring Bean.
    @Bean    public ShenyuResult customShenyuResult() {          return new CustomShenyuResult();    }