GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — 图形化拖拽生成json执行语句 · Issue #471 · APIJSON/APIJSON

图形化拖拽生成json执行语句 #471

New issue
Copy link
New issue
Copy link
Open
Open
图形化拖拽生成json执行语句#471
Copy link
Labels
Ecosystem 周边生态完善生态(Go语言版、更多Demo、周边工具等)完善生态(Go语言版、更多Demo、周边工具等)

Description

@cloudAndMonkey
cloudAndMonkey
opened on Nov 18, 2022
Issue body actions

image
@TommyLemon 请问这个功能实现了吗?

Activity

  1. cloudAndMonkey commented on Nov 18, 2022

    @cloudAndMonkey
    cloudAndMonkey
    on Nov 18, 2022
    ContributorAuthor
    More actions

    请问 apijson5.3 支持 delete 通过条件删除了吗?
    delete from xxx where id in (select xxx_id from dd where ...);
    delete from xxx where conditions

    我用5.4测了一下还是不行呀
    image

  2. TommyLemon commented on Nov 18, 2022

    @TommyLemon
    TommyLemon
    on Nov 18, 2022
    Member
    More actions

    image @TommyLemon 请问这个功能实现了吗?

    其它 BG 有同事做了,但暂时应该不会开源。

    APIAuto 新增支持:
    1.点击各种超链接智能生成 APIJSON 请求的 URL + JSON

    #37 (comment)

    2.自动推荐智能补全参数(APIJSON)
    #37 (comment)

    已经比以上在表格 UI 上点点选选的方案要方便高效很多了。

  3. TommyLemon commented on Nov 18, 2022

    @TommyLemon
    TommyLemon
    on Nov 18, 2022
    Member
    More actions

    请问 apijson5.3 支持 delete 通过条件删除了吗? delete from xxx where id in (select xxx_id from dd where ...); delete from xxx where conditions

    我用5.4测了一下还是不行呀 image

    支持传这个子查询条件,但还是必须再传 id/id{} ,可以改下源码
    AbstractVerifier 新增一个
    public static boolean IS_UPDATE_MUST_HAVE_ID_CONDITION = true; // 为 PUT, DELETE 强制要求必须有 id/id{} 条件
    子类把值设置为 false,然后对应
    AbstractVerifier.verifyId 对应校验的地方,传参 atLeastOne: true 改为 IS_FORCE_ID_CONDITION_4_WRITE
    https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractVerifier.java#L676
    image

  4. TommyLemon commented on Nov 18, 2022

    @TommyLemon
    TommyLemon
    on Nov 18, 2022
    Member
    More actions

    改了后麻烦提交 PR 贡献下代码哦,开源要大家一起参与贡献才会更美好~
    image

    https://github.com/Tencent/APIJSON/blob/master/CONTRIBUTING.md#%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%80%E5%AE%9A%E8%A6%81%E8%B4%A1%E7%8C%AE%E4%BB%A3%E7%A0%81

  5. cloudAndMonkey commented on Nov 18, 2022

    @cloudAndMonkey
    cloudAndMonkey
    on Nov 18, 2022
    ContributorAuthor
    More actions

    image @TommyLemon 请问这个功能实现了吗?

    其它 BG 有同事做了,但暂时应该不会开源。

    APIAuto 新增支持: 1.点击各种超链接智能生成 APIJSON 请求的 URL + JSON

    #37 (comment)

    2.自动推荐智能补全参数(APIJSON) #37 (comment)

    已经比以上在表格 UI 上点点选选的方案要方便高效很多了。

    我这边的场景是:
    通过选择表单字段或者在线表结构 去生成 单表、多表json语句模版.减少前端学习成本
    APIAuto 空了让前端的小伙伴研究一下, 我刚才点击一个表字段,然后生成了json语句, 看看能不能复用

  6. TommyLemon commented on Nov 18, 2022

    @TommyLemon
    TommyLemon
    on Nov 18, 2022
    Member
    More actions

    增删改查都支持,能根据权限角色配置、参数校验规则来生成,还能点 [' / "] 按钮切换生成简单接口模式,多点点试试

  7. cloudAndMonkey commented on Nov 22, 2022

    @cloudAndMonkey
    cloudAndMonkey
    on Nov 22, 2022
    ContributorAuthor
    More actions

    增删改查都支持,能根据权限角色配置、参数校验规则来生成,还能点 [' / "] 按钮切换生成简单接口模式,多点点试试

    嗯, 需要的场景不一样

  8. cloudAndMonkey commented on Nov 23, 2022

    @cloudAndMonkey
    cloudAndMonkey
    on Nov 23, 2022
    ContributorAuthor
    More actions

    @TommyLemon
    修改支持非id条件删除,上次讨论你给的解决方案如下:
    支持传这个子查询条件,但还是必须再传 id/id{} ,可以改下源码 AbstractVerifier 新增一个 public static boolean IS_UPDATE_MUST_HAVE_ID_CONDITION = true; // 为 PUT, DELETE 强制要求必须有 id/id{} 条件 子类把值设置为 false,然后对应 AbstractVerifier.verifyId 对应校验的地方,传参 atLeastOne: true 改为 IS_FORCE_ID_CONDITION_4_WRITE

    我思考了一下 ,按照上面的解决方案, 存在控制粗力度的问题.
    调用 verifyId 是在 new OnParseCallback() {} 内部, 只能调用 静态方法, 静态方法没法在子类里面重载, 所以就只能作为全局开关.
    image

    如果想要细粒度的控制某一张表, 可以通过 request structure must条件来控制即可
    image

    Reacted by TommyLemon
  9. cloudAndMonkey commented on Nov 23, 2022

    @cloudAndMonkey
    cloudAndMonkey
    on Nov 23, 2022
    ContributorAuthor
    More actions

    @TommyLemon
    非id删除, ref 删除 支持 with-as 我都搞定了
    image
    image

    但是有一种情况,你看看需不需要处理:
    {
    "sql@": {
    "@method": "GET",
    "with": true,
    "from": "User",
    "User": {
    "@column": "username",
    "username": "test1"
    }
    },
    "User": {
    "@method": "DELETE",
    "username{}@": "sql"
    },
    "explan": true
    }
    删除操作 主表 和 子查询 是同一张表
    mysql8以下 非with-as表达式 会报错:
    "msg": "You can't specify target table 'User' for update in FROM clause",

    需要调整sql语句,将子查询包一层(select * from (子查询) as xxx)
    DELETE FROM housekeeping.User
    WHERE ( (username IN (SELECT * FROM (SELECT username FROM housekeeping.User WHERE ( (username = 'test1') )) as a) ) )

    我已经改了
    image

    image

    Reacted by TommyLemon
  10. TommyLemon commented on Nov 23, 2022

    @TommyLemon
    TommyLemon
    on Nov 23, 2022
    Member
    More actions

    赞,也可以根据 MySQL 版本来做不同处理
    isMySQL() && getDBVersionNums()[0] >= 8

  11. TommyLemon commented on Nov 23, 2022

    @TommyLemon
    TommyLemon
    on Nov 23, 2022
    Member
    More actions

    @TommyLemon 修改支持非id条件删除,上次讨论你给的解决方案如下: 支持传这个子查询条件,但还是必须再传 id/id{} ,可以改下源码 AbstractVerifier 新增一个 public static boolean IS_UPDATE_MUST_HAVE_ID_CONDITION = true; // 为 PUT, DELETE 强制要求必须有 id/id{} 条件 子类把值设置为 false,然后对应 AbstractVerifier.verifyId 对应校验的地方,传参 atLeastOne: true 改为 IS_FORCE_ID_CONDITION_4_WRITE

    我思考了一下 ,按照上面的解决方案, 存在控制粗力度的问题. 调用 verifyId 是在 new OnParseCallback() {} 内部, 只能调用 静态方法, 静态方法没法在子类里面重载, 所以就只能作为全局开关. image

    如果想要细粒度的控制某一张表, 可以通过 request structure must条件来控制即可 image

    是这样,静态变量做全局处理,特殊接口用 Operation.MUST id/id{} 做自定义处理。
    之所以默认必传,是因为安全意识不够、编码粗心大意的人太多了,所以要有一个底线保障,尽可能避免安全隐患。

  12. TommyLemon
    added
    Ecosystem 周边生态完善生态(Go语言版、更多Demo、周边工具等)完善生态(Go语言版、更多Demo、周边工具等)
    on Nov 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Ecosystem 周边生态完善生态(Go语言版、更多Demo、周边工具等)完善生态(Go语言版、更多Demo、周边工具等)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.