通用web接口设计解决方案议论

通用web接口设计解决方案讨论
现在很多时候前后端交互都使用的是web接口返回json的方式,大多数情况下也都是对表的增删改查操作。

通常情况下我们都是加一个表增加一个Action或Controller,但我觉得很多情况下是没有必要的。

所以想要设计一个比较通用的接口,将sql保存到数据库表中,然后使用一个接口查询器的方式根据传递的不同参数,到数据库中查询不同的sql进行调用,这样新增一个表或有接口改动时,我们只需要在数据库中把sql改动一下就可以。

初步设想:(设计阶段)
有两个表,
一个存主要的sql语句(tab_api_sql),字段有:id, api_code, base_sql。
base_sql中可能的格式为:select id,name from tab_site where 1=1 #{siteId} and site_name=${siteName}

一个存sql语句中需要的参数或条件(tab_api_sql_param),字段有:id, param_code, param_name, param_value, fk_api_sql_id

遇到的问题:
1、有时候sql中是需要根据参数是否为空来动态拼接sql,目前没有想到怎么来判断
2、怎样根据url中的参数来动态的从数据库中拼接条件,并且设置动态值
------解决思路----------------------
想法是很不错的,但是这样实践起来很有多问题的
1、你提到的不同字段非空加载的sql不同

2、加一个表增加一个Action或Controller controller和 action的添加不是根据表来的,而是根据你前端业务来的,你有多少个操作,就有多少个controller,因为他们返回的值可能都不一样

3、如果需要级联查询的话,你也这样拼接么
------解决思路----------------------
楼主啊,现在一般对于不是特别复杂的查询一般都是调用一个 通用 baseDao,特别是加Filter查询能解决绝大多数的查询需要,而且新增表字段也可以配置动态生成撒。你这样搞反而复杂了。