À propos du projet
Le SDK AWS pour JavaScript v3 est une réécriture de la version 2 qui conserve l'objectif de travailler avec Amazon Web Services tout en modifiant l'empaquetage et l'architecture interne. Au lieu d'un seul grand SDK, il est divisé en packages modulaires, avec un package distinct pour chaque service, afin que les applications puissent importer uniquement ce qu'elles utilisent. Il ajoute également une prise en charge TypeScript de premier ordre et une nouvelle pile de middleware.
La prise en main suit un schéma familier : créez un projet Node.js, ajoutez un package de service tel que @aws-sdk/client-dynamodb, puis instanciez un client et envoyez une commande. Le README présente à la fois le style modulaire (DynamoDBClient avec ListTablesCommand et client.send) et un style non modulaire, similaire à la v2 (DynamoDB avec client.listTables). Il note que l'interface non modulaire augmente la taille du bundle lorsque le tree shaking est utilisé. Pour React Native, il répertorie les polyfills requis pour les valeurs aléatoires, la gestion des URL et les flux web, et mentionne l'activation de la prise en charge des exports de packages dans Metro.
Les principaux changements par rapport à la v2 incluent la suppression de l'objet de configuration global du SDK ; la configuration est désormais transmise à chaque instance de client, bien qu'elle puisse toujours être partagée manuellement. La gestion du cycle de vie des requêtes passe des écouteurs d'événements à une pile de middleware, où chaque middleware appelle le suivant et peut être ajouté avec un nom, une étape et une option de remplacement. Le README renvoie vers un fichier UPGRADING.md pour une description complète des changements d'API.
Les concepts de haut niveau abordés incluent les clients et commandes minimalistes par rapport aux clients agrégés, la disposition du code généré, les flux, les paginateurs et l'AbortController. Les clients de service générés se trouvent sous /clients et sont produits avec smithy-typescript ; le code utilitaire partagé se trouve dans /packages ; les wrappers de niveau supérieur tels que lib-dynamodb et lib-storage se trouvent dans /lib. Les sorties de flux reçoivent des méthodes mixin comme transformToString, qui lisent le flux une seule fois et ne peuvent pas être appelées de manière répétée. Les paginateurs exposent des fonctions génératrices asynchrones telles que paginateListTables, utilisables avec for await...of. L'interface AbortController permet d'annuler les requêtes.
Le README aborde également l'utilisation avec Lambda, en recommandant un client SDK par service et par région initialisé en dehors du gestionnaire, avec les appels d'API effectués à l'intérieur du gestionnaire pour éviter le décalage temporel de signature. Il renvoie vers la documentation sur les performances et note un comportement amélioré au démarrage à froid sur Node 18. Il explique l'installation à partir des sources en clonant, en compilant avec yarn, en empaquetant un client individuel et en installant l'archive résultante. Les canaux de retour incluent les issues GitHub et un chat Gitter, et les contributions sont acceptées sous la licence Apache 2.0. Le document référence également la cadence des versions, la politique de prise en charge de Node.js et d'ECMAScript, la politique de prise en charge des versions TypeScript, la stabilité des packages modulaires et les problèmes connus tels que les fonctionnalités nécessitant l'AWS Common Runtime.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.