DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据

案例一

  • 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下:
sql 复制代码
select id, name, age from user where id = #{id}
  • API默认返回的数据格式是多条的,如下:
json 复制代码
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "John",
            "age": 18"
        }
    ],
    "msg": null
}
  • 但实际上我们希望返回的数据格式是单条的,如下这样:
json 复制代码
{
    "success": true,
    "data": {
        "id": 1,
        "name": "John",
        "age": 18"
    },
    "msg": null
}

案例二

  • 如果API是查询单条数据的单个字段,比如根据主键ID查询用户名,sql如下:
sql 复制代码
select name from user where id = #{id}
  • 默认返回的数据格式如下:
json 复制代码
{
    "success": true,
    "data": [
        {
            "name": "John"
        }
    ],
    "msg": null
}
  • 但实际上我们希望返回的数据格式是单个字符串,如下这样:
json 复制代码
{
    "success": true,
    "data": "John",
    "msg": null
}

解决方案

  • 上面2个案例都可以用数据转换插件来实现,官方插件市场已经提供了单条数据取值插件,直接使用它即可实现
  • 下载插件,放到安装目录下的extlib目录下,并重启DBAPI
  • 修改API配置,执行器 - SQL - 插件名称选择此插件即可
  • 注意插件参数不填,就返回单条对象数据,对应实现案例一
  • 如果要实现案例二,就要填写插件参数,参数填写要提取的字段名,比如填写name

插件文档