jagerzhang opened a new issue #6368:
URL: https://github.com/apache/apisix/issues/6368


   ### Issue description
   
   Hi,我想请教下APISIX有没有可能提供一个探测路由配置是否命中的接口?比如想 admin-api POST 
一个新的路由配置Body,api告诉这个配置是否命中存量路由。
   
   ```
   POST /apisix/admin/routes/probe
   {
     "uris": [
       "/demo"
     ],
     "methods": [
       "GET",
       "POST",
       "HEAD"
     ],
     "hosts": [
       "demo.domain1.com",
       "demo.domain2.com",
     ]
   }
   ```
   比如命中可以返回命中的路由ID等信息:
   ```
   {
   "msg": "hit",
   "route_id": "xxxx"
   "code": 200
   }
   ```
   
   ### 可能这个需求有点偏,不过还是想请教下。下面是我的场景描述:
   =============================================
   ### 背景
   我们想基于APISIX包装一个HTTP 
7层业务网关服务,每个业务在门户中设置租户隔离,业务只能看到和自己相关的服务、上游、路由以及消费者等,业务之间可以通过服务自带的消费者去申请调用权限,其他则不在有数据上的交叉。
   
   ### 问题
   
在这个背景下,希望业务方在添加路由的时候,能够主动探测路由冲突情况,判断是否会覆盖掉现有路由,导致故障。但是APISIX好像并没有这种检测机制,可以随便添加相同或相近的路由配置。
   
   ###  解决
   
方案1:我们在设计网关服务的时候增加限制逻辑,会持久化记录路由配置信息,比如请求方法、域名、url等,然后在业务添加路由的时候判断是否冲突,再做后续的限制或提示逻辑。
   
   
方案2:和方案1类似增加限制逻辑,但是判断是否冲突**是通过APISIX的接口**来查询是否命中已有路由,整体更加简单,数据都在APISIX,不额外增加其他存储。
   
   
   ### Environment
   
   - apisix version (cmd: `apisix version`): 2.12.0
   - OS (cmd: `uname -a`): docker-centos


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to