浏览代码

新增无代码 nocodb 表格保存记录接口

hubin 2 月之前
父节点
当前提交
50be4e4eb9

+ 14 - 5
src/main/java/com/aizuda/boot/modules/noco/nocodb/NdColumn.java

@@ -1,31 +1,40 @@
 package com.aizuda.boot.modules.noco.nocodb;
 
 import com.fasterxml.jackson.annotation.JsonAlias;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
 
 @Getter
 @Setter
 public class NdColumn {
+
+    @Schema(description = "主键ID")
     private String id;
+
+    @Schema(description = "字段标题")
     private String title;
 
+    @Schema(description = "字段名称")
     @JsonAlias("column_name")
     private String columnName;
 
-    // 字段数据类型
+    @Schema(description = "字段是否为必填项 true 必填")
+    private Boolean rqd;
+
+    @Schema(description = "字段数据类型")
     private String dt;
 
-    // 创建字段类型
+    @Schema(description = "创建字段类型")
     private String ct;
 
-    // 字符串类型字段长度
+    @Schema(description = "字符串类型字段长度")
     private String clen;
 
-    // 系统字段 0,否 1,是
+    @Schema(description = "系统字段 0,否 1,是")
     private Integer system;
 
-    // 只读 0,否 1,是
+    @Schema(description = "只读 0,否 1,是")
     private Integer readonly;
 
 }

+ 16 - 0
src/main/java/com/aizuda/boot/modules/noco/nocodb/NdSaveResult.java

@@ -0,0 +1,16 @@
+package com.aizuda.boot.modules.noco.nocodb;
+
+import com.fasterxml.jackson.annotation.JsonAlias;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class NdSaveResult {
+
+    @Schema(description = "主键ID")
+    @JsonAlias("Id")
+    private Integer id;
+
+}

+ 11 - 0
src/main/java/com/aizuda/boot/modules/noco/service/NocoTableService.java

@@ -9,6 +9,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 
 @Service
 @AllArgsConstructor
@@ -51,4 +52,14 @@ public class NocoTableService {
         return nocoDB.getForObject("/api/v2/tables/{tableId}/records/{recordId}", NdRecord.class, tableId, recordId);
     }
 
+    /**
+     * 保存记录
+     * <p>返回新增记录ID</p>
+     */
+    public Integer saveRecord(String tableId, Map<String, Object> data) {
+        String jsonBody = JacksonUtils.toJson(data);
+        NdSaveResult nsr = nocoDB.postForObject("/api/v2/tables/{tableId}/records", jsonBody, NdSaveResult.class, tableId);
+        ApiAssert.fail(null == nsr, "保存记录失败");
+        return nsr.getId();
+    }
 }