springboot 网关集成

前提:
公司使用技术为springboot

目前公司有个需求,具体如下:
1、有多个独立产品,暂定 project-a、project-b、project-c

2、公司先需要搭建一个统一的网关,然后对外仅提供一个访问地址如:

http://test.com,需要传参{“method”:"addUser"}

3、mehod对应的接口地址会存储在数据库中

请问网关该服务该如何实现根据method对应的参数值去路由呢

可以使用Apache顶级开源项目神禹网关ShenYu。

如果网关侧只做路由转发,是不是可以做自定义spring的HandlerInterceptor拦截器,然后做地址重定向response.sendRedirect(request.getContextPath()+"/redirect/url");

spring cloud现在比较常用的网关,像gateway,转发后的地址一般依赖于请求地址,你这种统一的入口通过入参去决定最终转发的url,基本上就要自己改造它构造转发url的逻辑了,而且这里的参数(method的值),最好是通过url传递,像你给个json,非要走url也可以,但是没必要,但是你想发json请求携带method参数绝对不可取,相当于入口限制死请求方式了(转发的如果是文件请求,就g了),写了个demo试了下,还是没问题的

img


img


img