如何webflux客户路由器撰写:获取帖子

时间:2018-10-15 12:50:01

标签: spring-webflux

我要实施路由器规则:


  • 1,URL请求为get // api?method = login&...
  • 2,URL请求为post:/ api,主体包含方法参数
  • 3,URL前缀不/ api或方法参数不存在,则抛出异常:404

我怎么办?

@Bean   
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
   return builder.routes()
            .route(r -> r.path("/api").and().query("method").and().query("method", "login").uri("lb://bizservice-sys")

            )
            .build();
}

1 个答案:

答案 0 :(得分:0)

假设您使用的是Spring Boot,这是一个代码段:

@Bean // add that bean method in a configuration class
public RouterFunction<ServerResponse> routes(MyHandler handler) {

    return RouterFunctions
            .route(GET("/api").and(queryParam("method", "login")), handler::login)
            .andRoute(POST("/api"), handler::method);
}

@Component // create that component as a class
class MyHandler {

    Mono<ServerResponse> login(ServerRequest request) {
        return //...
    }

    Mono<ServerResponse> method(ServerRequest request) {
        return //...
    }

}