当用户上传 SQL 片段或者其他方式查询语句(redis command、es query)快速生成一个接口时,数据服务需要将接口发布。
接口发布后,接口调用方如何调用接口,数据服务又如何处理掉用方请求呢?这里就需要接口路由实现。
服务端定义一个通用接口如:
用户所有请求都发往一个统一的接口,通过请求参数中数据服务接口的唯一key进行二次路由,但是对外提供的接口只有一个,外界所有接口调用都走到这里面。
数据服务发布接口后,可以指定接口,如商品列表发布至 GET /api/items/list
,商品删除接口发布至 DELETE /api/items/delete
。
大部分后端框架定义接口的时候,都是提前定义好,无法在项目启动后在做修改(如框架在项目启动执行代码扫描,扫描出用户定义的接口,框架本身完成请求参数和响应结果的序列化和反序列化,做动态路由):
@Producer
注解和对应实现@RequestMapping
定义接口要实现动态发布接口,需有 2 个步骤:
服务端框架实现方式:
RequestMappingHandlerMapping
类中多协议。待补充
待补充
通用实现,做内部路由。待补充