Neues Azure Cosmos DB JavaScript SDK 2.0 jetzt als Public Preview

Veröffentlicht am 8 August, 2018

Program Manager, Azure Cosmos DB

Das Team von Azure Cosmos DB freut sich, Version 2.0 RC des JavaScript SDK – jetzt als Public Preview verfügbar – bekannt geben zu können!

Wir freuen uns über Feedback zu dieser RC-Version vor der allgemeinen Verfügbarkeit. Probieren Sie sie bitte aus, und lassen Sie uns wissen, was Sie davon halten. Die neueste Version erhalten Sie über npm mit folgendem Befehl:

npm install azure cosmos

Was ist Azure Cosmos DB?

Azure Cosmos DB ist ein global verteilter Datenbankdienst mit Unterstützung mehrerer Modelle. Er bietet eine schlüsselfertige globale Verteilung, eine elastische Skalierung von Durchsatz und Speicher und garantiert Latenzen im einstelligen Millisekundenbereich im 99. Perzentil.

Für die SQL-API unterstützen wir ein JavaScript SDK, um die Entwicklung für Azure Cosmos DB mithilfe von JavaScript- und Node.js- Projekten zu ermöglichen. Version 2.0 des SDK ist vollständig in TypeScript geschrieben. Zudem haben wir das Objektmodell neu gestaltet und Unterstützung für Zusagen hinzugefügt. Sehen wir uns diese Updates einmal näher an.

Neues Objektmodell

Anhand des Feedbacks der Benutzer haben wir das Objektmodell neu gestaltet, um die Interaktion mit Cosmos DB und das Anwenden von Vorgängen auf Cosmos DB zu erleichtern. 

Wenn Sie mit der vorherigen Version des JavaScript SDK vertraut sind, haben Sie wahrscheinlich bemerkt, dass die gesamte API an DocumentDBClient hängt. Während das bisherige Design es einfach macht, den Einstiegspunkt für Methoden zu finden, war der Preis dafür aber ein überladenes IntelliSense-Erlebnis (siehe unten).

DocumentDBClient

Wir erhielten auch Rückmeldungen, dass es schwierig war, Vorgänge außerhalb von Datenbanken, Sammlungen oder Dokumenten durchzuführen, da jede Methode auf die URL der jeweiligen Ressource verweisen musste. 

Wir haben zur Abhilfe eine neue übergeordnete Klasse namens CosmosClient erstellt, die DocumentDBClient ersetzt, und ihre Methoden in die modularen Klassen „Database“, „Container“ und „Items“ unterteilt.

Im neuen SDK können Sie beispielsweise mit nur zehn Codezeilen eine neue Datenbank sowie einen neuen Container erstellen und diesen ein Element hinzufügen.

Neue Datenbank erstellen

Dies wird als „Generator“-Muster bezeichnet und ermöglicht uns, auf Ressourcen basierend auf der Ressourcenhierarchie von Cosmos DB zu verweisen, was der Art und Weise ähnelt, wie Ihr Gehirn über Cosmos DB denkt. Um beispielsweise ein Element zu erstellen, verweisen wir zunächst auf seine Datenbank und seinen Container und rufen dann „items.create()“ auf.

Container und Elemente

Da Cosmos DB mehrere API-Modelle unterstützt, haben wir im SDK die Konzepte Container und Element eingeführt, die die bisherigen Konzepte „Sammlung“ und „Dokument“ ersetzen. Was Sie also bislang als „Sammlung“ kannten, heißt nun „Container“.

Ein Konto kann eine oder mehrere Datenbanken aufweisen, und eine Datenbank besteht aus einem oder mehreren Containern. Je nach API wird der Container entweder als Sammlung (MongoDB-API für SQL oder Azure Cosmos DB), Graph (Gremlin-API) oder Tabelle (Tables-API) projiziert.

Container und Elemente

Unterstützung für Zusagen

Wir haben endlich volle Unterstützung für Zusagen hinzugefügt, sodass Sie keinen benutzerdefinierten Code mehr manuell schreiben müssen, um das SDK zu umschließen. Sie können „async/await“ direkt auf das SDK anwenden.

Um den Unterschied zu verdeutlichen, wenn Sie eine neue Datenbank, eine neue Sammlung erstellen und ein Dokument im vorherigen SDK hinzufügen möchten, benötigen Sie so etwas wie Folgendes:

SDK

Im neuen SDK können Sie „await“ für die Aufrufe an Cosmos DB einfach direkt innerhalb einer „async“-Funktion aufrufen (siehe unten).

Des Weiteren haben wir die Convenience-Methode createIfNotExists() für Datenbanken und Container hinzugefügt, die die Logik umschließt, um die Datenbank zu lesen, den Statuscode zu überprüfen und zu erstellen, falls noch nicht vorhanden.

Beim neuen SDK sieht das Ganze so aus:

promisesNewImageUseThisOne

Open Source-Modell

Das Azure Cosmos DB JavaScript SDK ist ein Open Source-SDK, und unser Team will das Open Source-Konzept für die gesamte Entwicklung beibehalten. Daher werden wir Probleme protokollieren, Feedback nachverfolgen und Pull Requests in GitHub zulassen.

Erste Schritte

Wir hoffen, dass dieses neue SDK Entwicklern das Leben leichter macht. Mit dieser Schnellstartanleitung können Sie gleich loslegen. Wir würden uns sehr über Ihr Feedback freuen! Schreiben Sie eine E-Mail an cosmosdbsdkfeedback@microsoft.com, oder melden Sie Probleme in unserem GitHub-Repository.

npm install azure cosmos

Folgen Sie uns auf Twitter @AzureCosmosDB, um stets auf dem Laufenden über die neuesten Updates und Funktionen von Azure #CosmosDB zu bleiben. Wir sind gespannt, welche Innovationen Sie mit Azure Cosmos DB entwickeln werden.