上傳文檔
支援新增、更新、刪除 等操作,以及對應大量操作
URL
/v3/openapi/apps/$app_name/$table_name/actions/bulk
$app_name 為您要操作的應用程式名稱
$table_name 為您要將資料推送到應用中的表名
以上 URL 省略了請求Header參數及編碼等因素
以上 URL 中省略了訪問應用的 host 地址
支援格式
JSON
HTTP請求方式
POST
請求參數
推送涉及的簽名及佈建要求 Header 操作,請參考 V3版API 簽名機制文檔中的描述。
文檔資料格式
注意
標準版應用不支援 timestamp參數。如果指定 timestamp選項,推送會報4007
錯誤碼。
以進階版資料格式為例:
[
{
"cmd": "add",
"timestamp": 1401342874777,
"fields": {
"id": "1",
"title": "This is the title",
"body": "This is the body"
}
},
{
"cmd": "update",
"timestamp": 1401342874778,
"fields": {
"id": "2",
"title": "This is the new title"
}
},
{
"cmd": "delete",
"fields": {
"id": "3"
}
}
]
timestamp :可選欄位。用來記錄文檔實際發生時間,單位為毫秒。系統會用該時間戳記來作為同一主鍵文檔更新順序的判斷標準,該選項僅支援進階版,標準版應用,沒有該timestamp選項,若指定該選項,推送會報4007錯誤碼。在沒有該timestamp項時,預設以文檔發送到OpenSearch的時間作為文檔更新時間進行操作。
cmd : 必選欄位。定義該文檔的操作行為,可以為“add”、“update”、“delete”,標準版不支援“update”。建議一個請求中進行批次更新操作,提高網路互動及處理效率。“add”表示新增文檔,如果該主鍵對應文檔已經存在,則執行先“delete”再“add”的操作;“update”表示更新文檔,對該主鍵對應文檔進行部分欄位更新;“delete”表示刪除文檔,如果該主鍵對應文檔已經不存在,則認為刪除成功。
fields : 必選欄位。要操作的文檔內容,主鍵欄位必選,系統所有操作都是通過主鍵來進行的。對於“delete”只需要提供文檔主鍵即可。
對於Array類型,需要使用JsonArray來處理,如
[{“fields”: { “id”: “0”,”int_array”: [14,85],”string_array”: [“abc”,”xyz”]},”cmd”: “ADD”}]
;注意:最外層是JsonArray類型,支援多個文檔大量操作。
返回結果
參數 | 類型 | 描述 |
errors | array | 推送報錯內容,message代表錯誤資訊。params代表錯誤參數,code代表錯誤碼 |
request_id | string | 該條查詢的記錄id,主要用於排查問題使用 |
status | string | 執行結果,OK為成功,FAIL為失敗,請根據返回錯誤碼進行排查 |
result | string | 執行成功返回該參數,值為true,報錯不返回該參數 |
樣本
請求:(此處省略了請求Header參數及編碼等因素)
http://host/v3/openapi/apps/app_schema_demo/tab/actions/bulk
//下面的待上傳資料,需要放到body體中
[{"cmd":"ADD","fields":{"id":1,"name":"Test Data Push"}}]
成功返回
{
"errors": [],
"request_id": "150116724719940316170289",
"status": "OK",
"result": true
}
錯誤返回
{
"errors": [
{
"code": 2001,
"message": "待查應用不存在.待查應用不存在。",
"params": {
"friendly_message": "待查應用不存在。"
}
}
],
"request_id": "150116732819940316116461",
"status": "FAIL"
}
注意事項
使用API/SDK推送資料時,應用的欄位名稱大小寫不敏感。
使用API/SDK推送資料有次數及大小限制,不同應用限制不同,具體請參考系統限制描述。
資料上傳後請務必檢查傳回值,並對相關錯誤碼進行重試(尤其是3007錯誤),否則會出現資料丟失情況。同時,資料處理是非同步,系統返回“OK”後只表示系統接收資料成功,資料處理過程的錯誤會在控制台錯誤資訊中展示,請注意及時檢查。
POST的資料大小有限制,如果您上傳的文檔總量過大(編碼前2M),伺服器將拒絕接收任何參數,同時返回異常。
POST推送操作 body 部分的資料若包含中文必須要做 utf-8 編碼,Header中的Content-MD5 參數也一樣,在計算資料 MD5 值前,必須要先進行 utf-8 編碼,否則會出現推送報錯問題。