このトピックでは、ドキュメントをアップロードする際のデータ処理方法について説明します。
ドキュメントのアップロード
このアプリケーションプログラミングインターフェース (API) は、ドキュメントの追加、更新、削除をサポートします。これらの操作のバッチ処理にも対応しています。
-
URL
/v3/openapi/apps/$app_name/$table_name/actions/bulk-
$app_name は、ご利用のアプリケーションの名前を指定します。
-
$table_name は、データをプッシュするテーブルの名前を指定します。
-
上記 URL には、リクエストヘッダーパラメーターとエンコーディングの詳細は含まれていません。
-
上記 URL には、アプリケーションのホストアドレスは含まれていません。
-
サポートされているフォーマット:JSON
HTTP リクエストメソッド:POST
リクエストパラメーター
リクエストの署名とリクエストヘッダーの設定に関する詳細については、「v3 API 署名メカニズム」をご参照ください。
ドキュメントデータ形式
データ形式の例を次に示します:
[
{
"cmd": "add",
"timestamp": 1401342874777,
"fields": {
"id": "1",
"title": "This is the title",
"body": "This is the body"
}
},
{
"cmd": "delete",
"fields": {
"id": "2"
}
}
]
-
cmd:必須。ドキュメントに対して実行する操作を指定します。有効な値は add と delete です。ネットワーク効率を向上させるために、1 回のリクエストで一括更新を実行できます。add 操作は新しいドキュメントを追加します。同じプライマリキーを持つドキュメントが存在する場合、システムはまず既存のドキュメントを削除してから新しいドキュメントを追加します。delete 操作はドキュメントを削除します。指定されたプライマリキーを持つドキュメントが存在しない場合でも、操作は成功と見なされます。
-
fields:必須。ドキュメントの内容を指定します。すべてのシステム操作でプライマリキーが使用されるため、プライマリキーフィールドは必須です。delete 操作の場合、ドキュメントのプライマリキーを指定するだけで済みます。
-
配列型には JsonArray を使用します。例:
[{"fields": { "id": "0","int_array": [14,85],"string_array": ["abc","xyz"]},"cmd": "ADD"}]。 -
注:トップレベル要素は JsonArray であり、複数のドキュメントに対するバッチ操作をサポートします。
戻り値
|
パラメーター |
タイプ |
説明 |
|
errors |
array |
エラー内容。message はエラーメッセージを示し、params はエラーパラメーターを示し、code はエラーコードを示します。 |
|
request_id |
string |
リクエストの ID。この ID はトラブルシューティングに使用します。 |
|
status |
string |
操作の結果。OK は成功を示し、FAIL は失敗を示します。操作が失敗した場合は、返されたエラーコードに基づいてトラブルシューティングを行います。 |
|
result |
string |
このパラメーターは、操作が成功した場合に返されます。値は true です。エラーが発生した場合は、このパラメーターは返されません。 |
例
リクエスト: (この例では、リクエストヘッダーパラメーターとエンコーディングの詳細は省略されています。)
http://host/v3/openapi/apps/app_schema_demo/tab/actions/bulk
// 以下のデータをリクエストボディに配置します
[{"cmd":"ADD","fields":{"id":1,"name":"Test Data Push"}}]
成功応答
{
"errors": [],
"request_id": "150116724719940316170289",
"status": "OK",
"result": true
}
エラー応答
{
"errors": [
{
"code": 2001,
"message": "The specified application does not exist.",
"params": {
"friendly_message": "The specified application does not exist."
}
}
],
"request_id": "150116732819940316116461",
"status": "FAIL"
}
注意事項
-
API または SDK を使用してデータをプッシュする場合、アプリケーションのフィールド名では大文字と小文字は区別されません。
-
API または SDK を使用したデータのプッシュには、頻度とサイズに関する制限があります。これらの制限はアプリケーションによって異なります。詳細については、「使用制限」をご参照ください。
-
データをアップロードした後、戻り値を確認してください。データ損失を防ぐため、エラーコード 3007 など、特定のエラーコードが返された場合は、操作をリトライする必要があります。データ処理は非同期で行われます。「OK」という戻り値は、システムがデータを正常に受信したことのみを示します。データ処理中に発生したエラーはコンソールに表示されます。コンソールでエラーメッセージを速やかに確認する必要があります。
-
POST リクエストのデータサイズには制限があります。アップロードするドキュメントの合計サイズがエンコーディング前に 2 MB を超えると、サーバーはリクエストを拒否し、エラーを返します。
-
POST リクエストのボディに中国語文字が含まれている場合は、データを UTF-8 でエンコードする必要があります。Content-MD5 ヘッダーの MD5 値を計算する前にも、データを UTF-8 でエンコードする必要があります。そうしないと、プッシュ操作は失敗します。