diff --git a/multi/multi__developer_guide.html b/multi/multi__developer_guide.html index 1a432c09..06dcb185 100644 --- a/multi/multi__developer_guide.html +++ b/multi/multi__developer_guide.html @@ -1,3 +1,36 @@
-TODO: overview of writing custom integrations
TODO: overview of writing custom integrations
In order to write a GatewayFilter you will need to implement GatewayFilterFactory. There is an abstract class called AbstractGatewayFilterFactory which you can extend.
PreGatewayFilterFactory.java. +
--- +public class PreGatewayFilterFactory extends AbstractGatewayFilterFactory<PreGatewayFilterFactory.Config> {
+
public PreGatewayFilterFactory() {
+ super(Config.class);
+}@Override
+public GatewayFilter apply(Config config) {
+ // grab configuration from Config object
+ return (exchange, chain) -> {
+ //If you want to build a "pre" filter you need to manipulate the
+ //request before calling change.filter
+ ServerHttpRequest.Builder builder = exchange.getRequest().mutate();
+ //use builder to manipulate the request
+ return chain.filter(exchange.mutate().request(request).build());
+ };
+}public static class Config {
+ //Put the configuration properties for your filter here
+}}
PostGatewayFilterFactory.java. +
--- +public class PostGatewayFilterFactory extends AbstractGatewayFilterFactory<PostGatewayFilterFactory.Config> {
+
public PostGatewayFilterFactory() {
+ super(Config.class);
+}@Override
+public GatewayFilter apply(Config config) {
+ // grab configuration from Config object
+ return (exchange, chain) -> {
+ return chain.filter(exchange).then(Mono.fromRunnable(() -> {
+ ServerHttpReponse response = exchange.getResponse();
+ //Manipulate the response in some way
+ }));
+ };
+}public static class Config {
+ //Put the configuration properties for your filter here
+}}