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