支持新增、刪除 等操作,以及對應批量操作
URL
/update/$table_name/actions/bulk
$table_name 為數據源名稱
以上 URL 省略了請求Header參數及編碼等因素
以上 URL 中省略了訪問應用的 host 地址
支持格式
JSON
HTTP請求方式
POST
Header參數
參數 | 類型 | 描述 |
authorization | string | 簽名 |
X-Opensearch-Swift-PK-Field | string | 推送索引表主鍵,示例:id |
host | string | 請求host,可在實例詳情>API入口>API域名查看,示例:ha-cn-**********.ha.aliyuncs.com |
簽名機制
可用以下方法計算簽名(authorization)
參數 | 類型 | 描述 |
accessUserName | string | 用戶名,可在實例詳情頁>網絡信息 查看 |
accessPassWord | string | 密碼,可在實例詳情頁>網絡信息 修改 |
import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;
public class GenerateAuthorization {
public static void main(String[] args) throws Exception {
String accessUserName = "username";
String accessPassWord = "password";
String realmStr = "" + accessUserName + ":" + accessPassWord + "";
String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
System.out.println(authorization);
}
}
authorization正確返回格式
cm9vdDp******mdhbA==
注意:使用HTTP請求設置authorization參數是需加上Basic前綴
示例:
authorization: Basic cm9vdDp******mdhbA==
文檔數據格式(body)
[
{
"cmd": "add",
"fields": {
"id": "1",
"title": "This is the title",
"body": "This is the body"
}
},
{
"cmd": "delete",
"fields": {
"id": "3"
}
}
]
cmd : 必選字段。定義該文檔的操作行為,可以為“add”、“delete”,標準版不支持“update”。建議一個請求中進行批量更新操作,提高網絡交互及處理效率。“add”表示新增文檔,如果該主鍵對應文檔已經存在,則執行先“delete”再“add”的操作;“delete”表示刪除文檔,如果該主鍵對應文檔已經不存在,則認為刪除成功。
fields : 必選字段。要操作的文檔內容,主鍵字段必選,系統所有操作都是通過主鍵來進行的。對于“delete”只需要提供文檔主鍵即可。
對于Array類型,需要使用JsonArray來處理,如[{“fields”: { “id”: “0”,”int_array”: [14,85],”string_array”: [“abc”,”xyz”]},”cmd”: “add”}];
注意:最外層是JsonArray類型,支持多個文檔批量操作。
示例
請求:(此處省略了請求Header參數及編碼等因素)
http://ha-cn-**********.ha.aliyuncs.com/update/$table_name/actions/bulk
//下面的待上傳數據,需要放到body體中
[{
"cmd": "add",
"fields": {
"id": 1,
"name": "Test Data Push"
}
}]
成功返回
無任何返回參數說明推送成功
錯誤返回
[
{
"code": 3012,
"message": "Resource not found."
}
]
注意事項
使用API/SDK推送數據時,應用的字段名稱大小寫不敏感。
使用API/SDK推送數據有次數及大小限制,不同應用限制不同,具體請參考系統限制描述。
數據上傳后請務必檢查返回值,并對相關錯誤碼進行重試(尤其是3007錯誤),否則會出現數據丟失情況。同時,數據處理是異步的,系統返回“OK”后只表示系統接收數據成功,數據處理過程的錯誤會在控制臺錯誤信息中展示,請注意及時檢查。
POST的數據大小有限制,如果您上傳的文檔總量過大(編碼前2M),服務器將拒絕接收任何參數,同時返回異常。