| Page_type | Sprachen | Produkte | Beschreibung | urlfragment | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Probe |
|
| Verwenden der Änderung der Verfolgung der Verfolgung von APIs zur Synchronisierung von Daten zwischen Apps und der Cloud | Azure-sql-db-dotnet-rest-api |
Wenn Sie eine Anwendung entwickeln, die in der Lage sein muss, von der Cloud getrennt zu arbeiten, müssen Sie sicherlich irgendwann die Möglichkeit implementieren, die neuesten Daten aus der Cloud herunterzuladen, um die Daten lokal in die App zu aktualisieren. Dies effizient zu tun, könnte schwierig sein, da Sie verstehen müssen, welche Änderungen in der Cloud seit dem letzten Mal, als die Anwendung damit synchronisiert wurde, stattfand, damit Sie nur die Unterschiede senden können.
Mit Azure SQL können Sie die Änderungsverfolgung nutzen, um festzustellen, welche Zeilen vom letzten Mal geändert wurden, und eine Nutzlast generieren, die nur diese Änderungen enthält. So etwas:
{
"Metadata" : {
"Sync" : {
"Version" : 6 ,
"Type" : " Diff "
}
},
"Data" : [
{
"$operation" : " U " ,
"Id" : 10 ,
"RecordedOn" : " 2019-10-27T17:54:48-08:00 " ,
"Type" : " Run " ,
"Steps" : 3450 ,
"Distance" : 4981
},
{
"$operation" : " I " ,
"Id" : 11 ,
"RecordedOn" : " 2019-10-26T18:24:32-08:00 " ,
"Type" : " Run " ,
"Steps" : 4866 ,
"Distance" : 4562
}
]
}Genauer gesagt können Sie nicht nur die Änderungen erkennen, sondern Sie können auch den JSON direkt von Azure SQL erzeugen, damit Sie die erstaunliche Integration nutzen können, die Azure SQL über alle Funktionen hinweg bietet und einen wunderschön einfachen Code erstellen kann.
Weitere technische Details finden Sie hier: Synchronisieren Sie mobile Apps mit Azure mithilfe von Change Tracking -API
Ich habe auch ein Video vorbereitet, das in 10 Minuten angezeigt werden kann, wie viel einfacher Ihr Leben mit der Verfolgung von API -Verfolgung von Change sein kann.
] (https://www.youtube.com/watch?v=c1bmnruu6wc)
Stellen Sie sicher, dass Sie eine Azure SQL DB -Datenbank verwenden müssen. Wenn Sie kein Azure -Konto haben, können Sie eine kostenlos erstellen, die auch eine kostenlose Azure SQL DB -Stufe enthalten:
https://azure.microsoft.com/en-us/free-count-faq/
Um eine neue Datenbank zu erstellen, befolgen Sie die Anweisungen hier:
Erstellen Sie die Azure SQL -Datenbank
Oder, wenn Sie bereits mit Azure CLI vertraut sind, können Sie einfach ausführen (mit Bash, über WSL, eine Linux -Umgebung oder Azure Cloud Shell)
az group create -n < my-resource-group > -l WestUS2
az sql server create -g < my-resource-group > -n < my-server-name > -u < my-user > -p < my-password >
az sql db create -g < my-resource-group > --server < my-server-name > -n CTSample --service-objective HS_Gen5_2Sobald die Datenbank erstellt wurde, können Sie mithilfe von Azure Data Studio eine Verbindung zu ihr herstellen. Wenn Sie Hilfe bei der Einrichtung Ihrer ersten Verbindung zu Azure SQL mit Azure Data Studio benötigen, hilft Ihnen dieses schnelle Video:
So stellen Sie eine Verbindung zu Azure SQL -Datenbank aus Azure Data Studio her
Sobald die Datenbank erstellt wurde, müssen Sie das Änderungsverfolgung aktivieren und eine gespeicherte Prozedur hinzufügen, die von .NET von .NET aufgerufen wird. Der SQL -Code ist hier verfügbar:
./SQL/01-change-tracking-setup.sql./SQL/02-stored-procedure.sqlBitte führen Sie das Skript in der erstellten Datenbank nacheinander aus.
Wenn Sie Hilfe bei der Ausführung des SQL -Skripts benötigen, finden Sie hier einen QuickStart: QuickStart: Verwenden Sie Azure Data Studio, um eine Azure -SQL -Datenbank zu verbinden und abzufragen
Stellen Sie sicher, dass Sie .NET Core 3.0 SDK auf Ihrem Computer installiert sind. Klonen Sie dieses Repo in einem Verzeichnis auf unserem Computer und konfigurieren Sie dann die Verbindungszeichenfolge in appsettings.json .
Wenn Sie die Verbindungszeichenfolge aus Sicherheitsgründen nicht in der Datei appsettings.json speichern möchten, können Sie sie einfach mit einer Umgebungsvariablen festlegen:
Linux:
export ConnectionStrings__DefaultConnection= " <your-connection-string> "Fenster:
$ Env: ConnectionStrings__DefaultConnection = " <your-connection-string> "Ihre Verbindungszeichenfolge ist so etwas wie:
SERVER=<your-server-name>.database.windows.net;DATABASE=<your-database-name>;UID=DotNetWebApp;PWD=a987REALLY#$%TRONGpa44w0rd!
Ersetzen Sie einfach <your-server-name> und <your-database-name> durch die richtigen Werte für Ihre Umgebung.
Um die restliche API lokal zu laufen und zu testen, rennen Sie einfach rennen
dotnet run.NET startet den HTTP -Server und wenn alles im Betrieb ist
Now listening on: https://localhost:5001
Mit einem REST-Client (wie Visual Studio, Insomnia, Curl oder PowerShell's Invoke-RestMethod) können Sie jetzt Ihre API aufrufen, zum Beispiel:
curl -s -k -H " fromVersion: 0 " --url https://localhost:5001/trainingsession/syncUnd Sie werden so etwas wie Folgendes bekommen:
{
"Metadata" : {
"Sync" : {
"Version" : 6 ,
"Type" : " Full " ,
"ReasonCode" : 0
}
},
"Data" : [
{
"Id" : 9 ,
"RecordedOn" : " 2019-10-28T17:27:23-08:00 " ,
"Type" : " Run " ,
"Steps" : 3784 ,
"Distance" : 5123
},
{
"Id" : 10 ,
"RecordedOn" : " 2019-10-27T17:54:48-08:00 " ,
"Type" : " Run " ,
"Steps" : 0 ,
"Distance" : 4981
}
]
} Das Debuggen aus Visual Studio -Code wird vollständig unterstützt. Wenn Sie ein .env haben, wird sie verwendet, um die Verbindungszeichenfolge zu erhalten: Dies bedeutet, dass die .env -Datei zumindest wie folgt sein muss:
ConnectionStrings__DefaultConnection="<the-connection-string>"
Die .env -Datei wird auch verwendet, um Werte zu lesen, die für die Bereitstellung der Lösung für Azure erforderlich sind, wie im nächsten Abschnitt beschrieben.
Nachdem Ihre REST -API -Lösung fertig ist, ist es an der Zeit, sie auf Azure einzusetzen, damit jeder sie ausnutzen kann. Ein detaillierter Artikel darüber, wie Sie das hier können:
Das einzige, was Sie zusätzlich zu dem, was in den oben genannten Artikeln erklärt wurde, die Verbindungszeichenfolge zur Azure -Web -App -Konfiguration hinzufügen. Zum Beispiel mit AZ CLI:
AppName= " azure-sql-db-dotnet-rest-api "
ResourceGroup= " my-resource-group "
az webapp config connection-string set
-g $ResourceGroup
-n $AppName
--settings DefaultConnection= $ConnectionStrings__DefaultConnection
--connection-string-type=SQLAzure Stellen Sie einfach sicher, dass Sie $AppName und $ResourceGroup korrekt auf Ihre Umgebung einstellen, und auch die Variable $ConnectionStrings__DefaultConnection wie auch festgelegt, wie in Abschnitt "Probe lokal ausführen" erwähnt.
Ein Beispiel für ein vollständiges Skript, das die Rest-API bereitstellt, finden Sie hier: azure-deploy.sh . Das Skript benötigt und .env -Datei ausführen. Wenn es keine gibt, erzeugt es eine leere für Sie. Stellen Sie sicher, dass Sie es mit den richtigen Werten für Ihre Umgebung füllen, und Sie können gut gehen.
Die .env -Datei sieht wie folgt aus:
ResourceGroup="<resource-group-name>"
AppName="<app-name>"
Location="WestUS2"
ConnectionStrings__DefaultConnection="<the-connection-string>"
Wenn Sie neu in .NET sind und mehr erfahren möchten, gibt es auf der Microsoft Learn -Plattform eine Menge Tutorial. Sie können von hier aus beginnen, zum Beispiel:
Wenn Sie auch mehr über Visual Studio Code erfahren möchten, finden Sie hier eine weitere Ressource:
Verwenden Sie .NET CORE im Visual Studio -Code
Dieses Projekt begrüßt Beiträge und Vorschläge. In den meisten Beiträgen müssen Sie einer Mitarbeiters Lizenzvereinbarung (CLA) zustimmen, in der Sie erklären, dass Sie das Recht haben und uns tatsächlich tun, um uns die Rechte zu gewähren, Ihren Beitrag zu verwenden. Weitere Informationen finden Sie unter https://cla.opensource.microsoft.com.
Wenn Sie eine Pull -Anfrage einreichen, bestimmt ein CLA -Bot automatisch, ob Sie einen CLA angeben und die PR angemessen dekorieren müssen (z. B. Statusprüfung, Kommentar). Befolgen Sie einfach die vom Bot bereitgestellten Anweisungen. Sie müssen dies nur einmal über alle Repos mit unserem CLA tun.
Dieses Projekt hat den Microsoft Open Source -Verhaltenscode übernommen. Weitere Informationen finden Sie im FAQ oder wenden Sie sich an [email protected] mit zusätzlichen Fragen oder Kommentaren.