Online表單對外接口
===
**目錄索引:**
- 秘鑰配置
- 請求參數示例與說明
- 表單信息查詢接口
- 表單信息刪除接口
- 表單信息添加接口
- 表單信息更新接口
# Online表單對外接口
## 一、秘鑰配置
org.jeecgframework.web.cgform.controller.build.CgFormDataController.SIGN_KEY
說明: 暫時代碼寫死,后期可擴展
---
## 二、請求參數示例與說明
請求參數分為兩個部分 第一部分是參數
| 參數名| 是否必須| 類型| 描述| 示例|
| -------- | ----- | ---- |----- | ---- |
| body| 是| JSONString| 請求內容參數以json形式存儲| body: { "id": "40281381537e969401537eb9902d0006", "tableName": "jform_contact", "data": { "sex": "0", "name": "張山豐" }}|
| X-JEECG-SIGN| 是| String| 在請求頭里面添加,用于驗證簽名| “X-JEECG-SIGN”:” 735CE07A2AB9C1872983B09C85A770D9”|
http://地址:端口/項目名稱/api/cgFormDataController.do?addFormInfo
請求代碼示例
Header 添加簽名
“X-JEECG-SIGN”:” 735CE07A2AB9C1872983B09C85A770D9”
請求參數名為body 內容為json字符串
```
body: {
"id": "40281381537e969401537eb9902d0006",
"tableName": "jform_contact",
"data": {
"sex": "0",
"name": "張山豐"
}
}
```
返回
```
{
"msg": "新增表單數據成功",
"success": true
}
```
簽名規則:
將body對象轉換為json字符串傳入map 里對數據body進行簽名。并將簽名結果放在請求頭中 X-JEECG-SIGN
簽名示例代碼:
```
String key="26F72780372E84B6CFAED6F7B19139CC47B1912B6CAED753";
JSONObject jsonObject=new JSONObject();
jsonObject.put("id","40281381537e969401537eb9902d0006");
jsonObject.put("tableName","jform_contact");
JSONObject data=new JSONObject();
data.put("name","張山豐");
data.put("sex","0");
jsonObject.put("data",data);
String body=jsonObject.toJSONString();
Map param=new HashMap();
param.put("body",body);
String sign=SignatureUtil.sign(param,key);
```
代碼示例如下:
```
package test;
import com.alibaba.fastjson.JSONObject;
import org.jeecgframework.web.cgform.util.SignatureUtil;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
public class HttpUtil {
/**
* 發起https請求并獲取結果
*
* @param requestUrl
* 請求地址
* @param requestMethod
* 請求方式(GET、POST)
* @param outputStr
* 提交的數據
* @return JSONObject(通過JSONObject.get(key)的方式獲取json對象的屬性值)
*/
public static JSONObject httpRequest(String requestUrl,
String requestMethod, String outputStr,String sign) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
HttpURLConnection httpUrlConn = null;
try {
// 創建SSLContext對象,并使用我們指定的信任管理器初始化
URL url = new URL(requestUrl);
httpUrlConn = (HttpURLConnection) url.openConnection();
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
httpUrlConn.setRequestProperty("X-JEECG-SIGN",sign);
// httpUrlConn.setRequestProperty("content-type", "text/html");
// 設置請求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
// 當有數據需要提交時
if (null != outputStr) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意編碼格式,防止中文亂碼
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 將返回的輸入流轉換成字符串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(
inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(
inputStreamReader);
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 釋放資源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
jsonObject = JSONObject.parseObject(buffer.toString());
// jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
org.jeecgframework.core.util.LogUtil
.info("Weixin server connection timed out.");
} catch (Exception e) {
//e.printStackTrace();
org.jeecgframework.core.util.LogUtil.info("https request error:{}"
+ e.getMessage());
}finally{
try {
httpUrlConn.disconnect();
}catch (Exception e) {
e.printStackTrace();
org.jeecgframework.core.util.LogUtil.info("http close error:{}"+ e.getMessage());
}
}
return jsonObject;
}
public static void main(String args[]){
String key="26F72780372E84B6CFAED6F7B19139CC47B1912B6CAED753";
JSONObject jsonObject=new JSONObject();
jsonObject.put("id","40281381537e969401537eb9902d0006");
jsonObject.put("tableName","jform_contact");
JSONObject data=new JSONObject();
data.put("name","張山豐");
data.put("sex","0");
jsonObject.put("data",data);
String body=jsonObject.toJSONString();
Map param=new HashMap();
param.put("body",body);
String sign=SignatureUtil.sign(param,key);
JSONObject resp=HttpUtil.httpRequest("http://localhost:8080/jeecg/api/cgFormDataController.do?addFormInfo","POST","body="+body,sign);
System.out.println(resp.toJSONString());
}
}
```
---
## 三、表單信息查詢接口
### 1.請求地址
http://地址:端口/項目名稱/api/cgFormDataController.do?getFormInfo
具體參考請求參數說明
請求方式:get/post請求
編碼:utf-8
### 2.求參數說明
| 參數名| 是否必須| 類型| 描述| 示例|
| -------- | ----- | ---- |----- | ---- |
| tableName| 是| String| Online表名| jfrom_le_demo|
| id| 是| String| 數據id(單表id/主表id)| 40281381537e969401537eb9902d0005|
### 3.返回結果
##### 3.1.單表模型
單表返回josn格式:
```
{
"success": true,
"tableData": {
"id": "40281381537e969401537eb9902d0005",
"create_name": "管理員",
"create_by": "admin",
"create_date": 1458112595000,
"update_name": null,
"update_by": null,
"update_date": null,
"sys_org_code": "A02",
"sys_company_code": "A0",
"name": "1",
"age": 1,
"job": "",
"job_desc": "1",
"bpm_status": null,
"sex": ""
},
"msg": "操作成功",
"subTableDate": null,
"tableType": 1
}
```
#### 3.2.主子表模型
主子表返回josn格式:
```
{
"success": true,
"tableData": {
"id": "402813815384ba04015384c5c3e00001",
"create_name": null,
"create_by": null,
"create_date": null,
"update_name": "管理員",
"update_by": "admin",
"update_date": 1458576000000,
"sys_org_code": null,
"sys_company_code": null,
"name": "1",
"sex": "1",
"remark": "1",
"bpm_status": null
},
"msg": "操作成功",
"subTableDate": {
"jform_le_submany": [
{
"id": "402813815384e2df015384e39a270001",
"create_name": "管理員",
"create_by": "admin",
"create_date": 1458144000000,
"update_name": "管理員",
"update_by": "admin",
"update_date": 1458576000000,
"sys_org_code": "A02",
"sys_company_code": "A0",
"name": "1",
"sex": "1",
"remark": "1",
"bpm_status": "1",
"main_id": "402813815384ba04015384c5c3e00001"
}
],
"jform_le_subone": [
{
"id": "402813815384ba04015384c5c4320002",
"create_name": "管理員",
"create_by": "admin",
"create_date": 1458144000000,
"update_name": "管理員",
"update_by": "admin",
"update_date": 1458576000000,
"sys_org_code": "A02",
"sys_company_code": "A0",
"name": "1",
"sex": "1",
"remark": "1",
"bpm_status": "1",
"main_id": "402813815384ba04015384c5c3e00001"
}
]
},
"tableType": 2
}
```
#### 3.3.返回結果JSON參數說明

---
## 四、表單信息刪除接口
### 1.請求地址
http://地址:端口/項目名稱/api/ cgFormDataController.do?deleteFormInfo
請求方式:get/post請求
編碼:utf-8
### 2.請求參數說明
| 參數名| 是否必須| 類型| 描述| 示例|
| -------- | ----- | ---- |
| tableName| 是| String| Online表名| jfrom_le_demo|
| id| 是| String| 數據id(單表id/主表id)| 40281381537e969401537eb9902d0005|
### 3.返回結果
返回josn格式
```
{
"success": true,
"msg": "刪除成功"
}
```
json參數說明
| 參數名| 是否必須| 描述| 示例|
| -------- | ----- | ---- |
| success| 是| 刪除狀態true:成功;false:失敗| TRUE|
| msg| 是| 返回的信息| 刪除成功|
---
## 五、表單信息添加接口
### 1.請求地址
http://地址:端口/項目名稱/api/cgFormDataController.do?addFormInfo
請求方式:get/post請求
編碼:utf-8
### 2.請求參數說明
| 參數名| 是否必須| 類型| 描述| 示例|
| -------- | ----- | ---- |
| tableName| 是| String| Online表名| jfrom_le_demo|
| id| 是| String| 數據id(單表id/主表id)| 40281381537e969401537eb9902d0005|
| data| 是| String| 單表數據json格式/主表附表json數據格式| |
#### 2.1.單表DATA數據json格式:
```
{
"name": "ceshi",
"age": 10,
"job": "java developer"
}
```
#### 2.2.主表附表data 數據json格式
```
{
jform_le_main:[{id="402813815398698b015398698b710000",
name:"ceshi111111",
age:10,
job:"java developer"
}],
jform_le_subone:[{main_id="402813815398698b015398698b710000",
name:"ceshi111111",
age:10,
job:"java developer"
}],
jform_le_submany:[{main_id="402813815398698b015398698b710000",
name:"ceshi111111",
age:10,job:"java developer"
},
{name:"ceshi111111",
age:10,
job:"java developer"}
]
}
```
### 3.返回結果
返回josn格式:
```
{"success":true,
"msg":"新增表單數據成功"
}
```
json參數說明
| 參數名| 是否必須| 描述| 示例|
| -------- | ----- | ---- |
| success| 是| 處理狀態true:成功;false:失敗| TRUE|
| msg| 是| 返回的信息| 新增表單數據成功|
---
## 六、表單信息更新接口
### 1.請求地址
http://地址:端口/項目名稱/api/cgFormDataController.do?updateFormInfo
請求方式:get/post請求
編碼:utf-8
### 2.請求參數說明
| 參數名| 是否必須| 類型| 描述| 示例|
| -------- | ----- | ---- |
| tableName| 是| String| Online表名| jfrom_le_demo|
| id| 是| String| 數據id(單表id/主表id)| 40281381537e969401537eb9902d0005|
| data| 是| String| 單表數據json格式/主表附表json數據格式| | |
#### 2.1.單表DATA數據json格式
```
{
"name": "ceshi",
"age": 10,
"job": "java developer"
}
```
### 3.返回結果
返回josn格式:
```
{
"success": true,
"msg": "更新表單數據成功"
}
```
json參數說明
| 參數名| 是否必須| 描述| 示例|
| -------- | ----- | ---- |----- | ---- |
| success| 是| 處理狀態true:成功;false:失敗| TRUE|
| msg| 是| 返回的信息| 更新表單數據成功|
- 總體介紹
- 快速了解
- 平臺優勢
- 技術支持
- 社區榮譽
- 開發環境準備
- JEECG私服Maven
- 代碼結構說明
- 入門開發環境搭建
- 開發工具
- 代碼生成器使用
- GUI代碼生成器
- Online代碼生成器
- P3插件代碼生成器
- 代碼生成器配置
- 功能介紹
- 權限開發手冊
- Online開發權限
- Online表單訪問規則
- 列表按鈕權限控制
- 列表數據權限控制
- 頁面表單權限控制(一對多表)
- 頁面表單權限控制(單表)
- 其他
- 二級管理員手冊
- 接口權限配置
- 平臺權限設計總覽
- 編碼開發方式
- 列表按鈕權限用法
- 列表數據權限用法
- 數據權限自定義SQL
- 表單權限用法
- UI標簽庫文檔
- AuthFilter(頁面權限標簽)
- Autocomplete(自動補全標簽)
- BaseTag(樣式和JS引入標簽)
- Choose(彈出選擇標簽)
- ComboTree(下拉樹形選擇框)
- Datagrid(數據列表標簽)
- DepartSelectTag(部門樹選擇標簽)
- DictSelect(數據字典下拉選擇框)
- FormValidation(表單提交及驗證標簽)
- HasPermissionTag(頁面權限標簽)
- Menu(左側菜單生成標簽)
- MutiLang(國際化標簽)
- OrgSelectTag(部門樹列表選擇標簽)
- SelectZTree(Ztree樹控件)
- Tabs(選項卡父標簽)
- TreeSelectTag樹分類標簽
- Upload(上傳標簽)
- UserSelectTag(用戶選擇標簽)
- WebUploader(上傳標簽)
- 查詢構造器
- 查詢過濾器
- 高級查詢構造器
- 專題功能介紹
- 國際化使用
- 多數據源使用
- 定時任務
- 平臺JWT接口文檔
- 消息中心
- Online在線開發
- Online二次開發
- Online代碼生成
- Online唯一性校驗配置
- Online查詢機制(數據權限)
- Online樹形表單配置
- Online表單填值規則
- Online表單對外接口
- Online表單控件
- Online表單配置
- Online表單高級應用
- Online報表開發
- Online圖形報表配置
- Online數據報表配置
- Online移動報表配置
- 自定義表單設計
- 自定義表單權限
- 列表空間權限控制
- 功能介紹
- 常規控件權限控制
- 自定義表單配置
- 自定義表單二次開發
- 自定義表單控件
- 自定義表單數據源
- 自定義表單模板
- 自定義表單配置
- 自定義表單高級應用
- 表單數據維護
- 附錄小技巧
- datagrid擴展屬性用法
- Formvalid新增屬性tiptype的使用
- JEECG單點集成文檔
- Jeecg定時任務開發
- JEECG常見問題貼
- Redis與Ehcache切換文檔
- Toolbar自定義js參數規則
- UI標簽規則
- 列表多表頭的設計
- 列表拓展字段展示
- 列表自定義查詢條件
- 員工入職開發規范文檔V1.0
- 數據列表合計功能
- 登錄權限攔截器排除方法
- 組織機構導入功能使用說明
- 表單字段重復校驗方法
- JEECG新技術
- 新版UI技術方案