Fermer

janvier 27, 2020

Kinvey améliore l'accès aux anciens ensembles de données à partir des applications cloud


Progress Kinvey est bien connu pour ses capacités à se connecter à plusieurs magasins de données basés sur le cloud et hérités. Une nouvelle fonctionnalité multi-insert introduite améliore cette histoire pour les développeurs d'applications modernes.

Depuis les premiers jours de SQL (il y a environ 40 ans, mais qui compte?), Nous avons eu du mal à trouver un moyen efficace et fiable de insérer plusieurs enregistrements dans une table de base de données en un seul coup. Quelque chose qui ne nécessite pas une quantité excessive de code, confondant une nouvelle syntaxe propriétaire ou bouclant sur des tableaux et des ensembles de données.

Quand le monde a commencé à se diriger vers NoSQL les magasins de données (comme Progress Kinvey ), ces mêmes questions fondamentales existaient encore de bien des façons. Aujourd'hui, nous allons couvrir la solution de Kinvey pour ce problème: l'API multi-insert.

Petit, grand, mais rien de moyen! 1965

Depuis sa création, Kinvey a pris en charge une API REST standard pour les collectes de données. Insérez un enregistrement avec un POST sélectionnez un ou plusieurs enregistrements avec un GET remplacez un enregistrement par un PUT ou supprimez une entité avec un SUPPRIMER . Ce sont des capacités de tables stakes pour n'importe quel cloud ou magasin de données sur site.

Kinvey a ajouté à ces capacités en permettant aux utilisateurs de prendre en charge des opérations de données plus complexes comme plusieurs insertions, plusieurs mises à jour et des mises à jour partielles en tirant parti de Business Logic .

Alors que Business Logic et l'API FlexServices sont de puissants moyens de créer une logique côté serveur pour vos applications parfois la surcharge requise peut être excessive. Surtout pour quelque chose d'aussi "simple" que d'essayer simplement d'insérer des enregistrements dans une collection de données. Les clients réclament donc un moyen d'ajouter une sorte de fonction "d'insertion en masse" dans l'API REST Kinvey (ou l'un des nombreux […] SDK clients de ). La réponse est la nouvelle API multi-insert.

Multi-Insert dans Kinvey vey

Au lieu d'écrire une boucle pour et d'itérer sur un tableau de valeurs, Kinvey vous permet maintenant d'envoyer un lot d'entités à insérer, tout d'un coup. Et il convient de noter que la multi-insertion est prise en charge dans les SDK Kinvey à partir de la v5.

Pour effectuer une demande d'API v5, assurez-vous de définir la version d'API dans la demande avec le X-Kinvey-API- Version En-tête HTTP.

Ces insertions multi-enregistrements sont effectuées avec une demande POST et un tableau d'entités:

 POST / appdata /: appKey /: collectionName HTTP / 1.1
Hôte: baas.kinvey.com
Autorisation: [YOUR-APP-CREDENTIALS]
Type de contenu: application / json
Version X-Kinvey-API: 5

[
  { "_id": 1, "firstname": "Rob", "lastname": "Lauer" },
  { "_id": 2, "firstname": "Dan", "lastname": "Wilson" },
  { "_id": 3, "firstname": "TJ", "lastname": "VanToll" },
  { "_id": 4, "firstname": "Sebastian, "lastname": "Witalec" }
]

Dans la réponse à ce POST vous verrez un tableau d'entités et un tableau d'erreurs . Les entités contenant les enregistrements insérés (avec un null comme espace réservé pour tous les problèmes) et les erreurs contenant toutes les erreurs enregistrées (avec la position d'index de l'entité

Par exemple, dans cette demande, si l'enregistrement de "Sebastian" a échoué, votre réponse ressemblerait à ceci:

 {
  "entités": [
    {
      "_id": 1,
      "firstname": "Rob",
      "lastname": "Lauer"
    },
    {
      "_id": 2,
      "firstname": "Dan",
      "lastname": "Wilson"
    },
    {
      "_id": 3,
      "firstname": "TJ",
      "lastname": "VanToll"
    },
    null
  ],
  "les erreurs": [
    {
      "code": "",
      "index": 3,
      "errmsg": ""
    }
  ]
}

Lorsque vous regardez comment cela est effectué dans certains des SDK clients individuels, vous trouverez que la syntaxe est assez familière. Par exemple, avec le SDK JavaScript:

 Kinvey.init ({
  appKey: '',
  appSecret: '',
  apiVersion: 5
});

const newPeople = [
  { firstname: 'Joe' },
  { firstname: 'Jane' }
];

const store = Kinvey.DataStore.collection ('People', Kinvey.DataStoreType.Network);

attendre store.save (newBooks);

Vous pourrez trouver des exemples pour les autres SDK clients dans le Kinvey DevCenter .

Avantages du Multi-Insert ?

Mis à part l'amélioration de l'expérience du développeur avec un moyen plus logique de l'insertion en bloc d'enregistrements, vous pouvez également obtenir des performances considérablement améliorées lors de la connexion à des sources de données externes avec à la fois RapidData et FlexServices.

FlexServices peut gérer une nouvelle demande d'insertion multiple en utilisant le onInsertMany un événement. Comme ci-dessus, la demande est un tableau d'entités.

 const sdk = require ('flex-sdk');

function somePeopleFunction (context, complete, modules) {
  const body = context.request.body; //  {
  const data = flex.data;
  data.collection ('People'). onInsertMany (somePeopleFunction);
});

Avant de commencer … ?

Veuillez noter que cette fonctionnalité est en mode EA (accès anticipé) pendant que nous corrigeons les problèmes. Si vous souhaitez nous aider à l'essayer, veuillez contacter notre équipe d'assistance directement à support@kinvey.com . Nous estimons que la fonctionnalité sera généralement disponible au deuxième trimestre!

Si ce n'est pas déjà fait, inscrivez-vous dès aujourd'hui à votre essai gratuit de Progress Kinvey !




Source link