URL
/update/$table_name/actions/bulk
$table_name correspond à ID d'instance_nom de la table. Par exemple, si l'ID d'instance est ha-843qfng6ydhb et que le nom de la table est test, alors table_name vaut ha-843qfng6ydhb_test.
L'URL ci-dessus omet certains éléments tels que les paramètres d'en-tête de requête et l'encodage.
L'URL ci-dessus omet l'adresse hôte permettant d'accéder à l'application.
Format pris en charge
JSON
Méthode de requête HTTP
POST
Paramètres d'en-tête
|
Paramètre |
Type |
Description |
|
authorization |
string |
Signature |
|
X-Opensearch-Swift-PK-Field |
string |
Clé primaire de la table d'index à pousser. Exemple : id |
|
host |
string |
Hôte de la requête. Consultez-le dans Détails de l'instance > Endpoint API > Domaine API. Exemple : ha-cn-.ha.aliyuncs.com |
Mécanisme de signature
Utilisez la méthode suivante pour calculer la signature ( authorization)
|
Paramètre |
Type |
Description |
|
accessUserName |
string |
Nom d'utilisateur. Consultez-le sur la page des détails de l'instance > Informations réseau. |
|
accessPassWord |
string |
Mot de passe. Modifiez-le sur la page des détails de l'instance > Informations réseau. |
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);
}
}
Format de retour correct pour authorization
cm9vdDp******mdhbA==
Remarque : Lorsque vous définissez le paramètre authorization dans une requête HTTP, ajoutez le préfixe Basic.
Exemple :
authorization: Basic cm9vdDp******mdhbA==
Format des données du document (body)
[
{
"cmd": "add",
"fields": {
"id": "1",
"title": "This is the title",
"body": "This is the body"
}
},
{
"cmd": "delete",
"fields": {
"id": "3"
}
}
]
cmd : Obligatoire. Définit l'opération à appliquer au document : « add » ou « delete ». Nous vous recommandons d'effectuer des mises à jour par lots dans une seule requête afin d'améliorer les interactions réseau et l'efficacité du traitement. « add » ajoute un document. Si un document avec la même clé primaire existe déjà, le système effectue d'abord une opération « delete », puis une opération « add ». « delete » supprime un document. Si le document correspondant à la clé primaire n'existe plus, la suppression est considérée comme réussie.
fields : Obligatoire. Contenu du document à traiter. La colonne de clé primaire est requise, car toutes les opérations du système s'appuient sur la clé primaire. Pour « delete », indiquez uniquement la clé primaire du document.
Pour le type Array, utilisez JsonArray, par exemple [{"fields": { "id": "0","int_array": [14,85],"string_array": ["abc","xyz"]},"cmd": "add"}].
Remarque : Le niveau le plus externe est de type JsonArray, ce qui permet des opérations par lots sur plusieurs documents.
Exemple
Requête : (Les paramètres d'en-tête de requête et l'encodage sont omis ici.)
http://ha-cn-.ha.aliyuncs.com/update/$table_name/actions/bulk //Les données suivantes à télécharger doivent être placées dans le corps [{ "cmd": "add", "fields": { "id": 1, "name": "Test Data Push" } }]
Réponse réussie
L'absence de paramètres de retour indique que le push a réussi.
Réponse d'erreur
[
{
"code": 3012,
"message": "Resource not found."
}
]
Remarques
Lorsque vous utilisez l'API ou le SDK pour pousser des données, les noms de colonnes de l'application ne sont pas sensibles à la casse.
Des limites s'appliquent au nombre et à la taille des données poussées via l'API ou le SDK. Ces limites varient selon l'application. Pour plus d'informations, consultez les descriptions des limites du système.
Après le téléchargement des données, vérifiez la valeur de retour et réessayez en cas de codes d'erreur pertinents (en particulier l'erreur 3007). Sinon, une perte de données peut survenir. De plus, le traitement des données est asynchrone. Un retour « OK » indique uniquement que le système a bien reçu les données. Les erreurs survenant lors du traitement des données apparaissent dans les messages d'erreur de la console ; vérifiez-les donc rapidement.
Une limite de taille s'applique aux données POST. Si le volume total des documents téléchargés est trop important (2 Mo avant encodage), le serveur refuse les paramètres et renvoie une exception.