For AI agents: the complete documentation index is available at /docs/llms.txt, the full documentation bundle is available at /docs/llms-full.txt, and this page is available as Markdown at /docs/blog/data-platform/data-service.md.
  • 简体中文
  • 2026
  • 数据服务

    路由

    当用户上传 SQL 片段或者其他方式查询语句(redis command、es query)快速生成一个接口时,数据服务需要将接口发布。

    接口发布后,接口调用方如何调用接口,数据服务又如何处理掉用方请求呢?这里就需要接口路由实现。

    静态路由

    服务端定义一个通用接口如:

    @Component
    public class DynamicController {
    
        @PostMapping("/execute")
        @ResponseBody
        public ResponseResult<Object> executeSql(HttpServletRequest request) {
            Map<String, Object> requestBody = HttpParamUtil.getRequestBody(request);
    
            String api = requestBody.get(HttpParamUtil.API_KEY);
            Object params = requestBody.get(HttpParamUtil.API_PARAMS);
            
            return doExecuteSql(api, params);
        }
    }

    用户所有请求都发往一个统一的接口,通过请求参数中数据服务接口的唯一key进行二次路由,但是对外提供的接口只有一个,外界所有接口调用都走到这里面。

    动态路由

    数据服务发布接口后,可以指定接口,如商品列表发布至 GET /api/items/list,商品删除接口发布至 DELETE /api/items/delete。

    大部分后端框架定义接口的时候,都是提前定义好,无法在项目启动后在做修改(如框架在项目启动执行代码扫描,扫描出用户定义的接口,框架本身完成请求参数和响应结果的序列化和反序列化,做动态路由):

    • dubbo。用户需定义接口,增加 @Producer 注解和对应实现
    • spring mvc。用户通过 @RequestMapping 定义接口

    要实现动态发布接口,需有 2 个步骤:

    • 动态定义接口
    • 动态注册接口

    服务端框架实现方式:

    • dubbo。
      • 使用代码生成动态定义接口,及其实现
      • 注册接口至 dubbo 注册中心
    • spring。
      • 使用代码生成动态定义接口,及其实现
      • 注册接口至 spring 的 RequestMappingHandlerMapping 类中

    dubbo

    多协议。待补充

    spring

    待补充

    通用实现

    通用实现,做内部路由。待补充