From 4a2244dc29d72e2a994d2288e3731d29ecb7fead Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期三, 18 三月 2026 14:22:00 +0800
Subject: [PATCH] 动态查询API接口修改
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java | 71 +++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+), 0 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java
new file mode 100644
index 0000000..bcf0fa1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java
@@ -0,0 +1,71 @@
+package com.ruoyi.web.controller.common;
+
+import com.alibaba.fastjson2.JSON;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.project.domain.BaseAnnextype;
+import com.ruoyi.project.domain.GiApi;
+import com.ruoyi.project.domain.dto.ApiDTO;
+import com.ruoyi.project.service.IApiService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Api(description = "api鏈嶅姟")
+@RestController
+@RequestMapping("/api")
+public class ApiController {
+ @Autowired
+ private IApiService service;
+ @ApiOperation("API->api鏌ヨ鍒楄〃")
+ @PostMapping("/{path}")
+ public AjaxResult getApiList(@PathVariable("path") String path, @RequestBody ApiDTO DTO) {
+ List<Map<String, Object>> lists = new ArrayList<>();
+ if (ObjectUtils.isNotEmpty(path)) {
+ GiApi tempSql = service.getCode(path);
+ if (tempSql != null && ObjectUtils.isNotEmpty(tempSql.getApiSql())) {
+ String SQL_REG_EXP = ".*(\\b(insert|into|update|delete|trancate" +
+ "|drop|execute|grant|use)\\b).*";
+ if (tempSql.getApiSql().toLowerCase().matches(SQL_REG_EXP)) {
+ return AjaxResult.error("sql涓湁闈炴硶瀛楃,鍙簲璁竤elect");
+ }
+ lists = service.getListSql(tempSql.getApiSql(), DTO);
+ return AjaxResult.success(JSON.toJSON(lists));
+ } else
+ return AjaxResult.error("sql浠g爜娌℃湁瀵瑰簲鐨剆ql璇锋牳瀵�");
+ } else {
+ return AjaxResult.error("琛ㄥ悕涓嶈兘涓虹┖");
+ }
+ }
+
+ @ApiOperation("API->api鏌ヨobject")
+ @PostMapping("/s/{path}")
+ public AjaxResult getStringSql(@PathVariable("path") String path, @RequestBody ApiDTO DTO){
+ List<Map<String,Object>> lists=new ArrayList<>();
+ if(ObjectUtils.isNotEmpty(path)) {
+ GiApi tempSql= service.getCode(path);
+ if(tempSql!=null&&ObjectUtils.isNotEmpty(tempSql.getApiSql())) {
+ String SQL_REG_EXP = ".*(\\b(insert|into|update|delete|trancate" +
+ "|drop|execute|grant|use)\\b).*";
+ if (tempSql.getApiSql().toLowerCase().matches(SQL_REG_EXP)) {
+ return AjaxResult.error("sql涓湁闈炴硶瀛楃,鍙簲璁竤elect");
+ }
+
+ return AjaxResult.success(service.getStringSql(tempSql.getApiSql(), DTO));
+
+ }else
+ return AjaxResult.error("sql浠g爜娌℃湁瀵瑰簲鐨剆ql璇锋牳瀵�");
+ }else {
+ return AjaxResult.error("琛ㄥ悕涓嶈兘涓虹┖");
+ }
+ }
+
+}
--
Gitblit v1.9.3