Freigeben über


Verwenden von REST-APIs vom Gerät aus

 

Veröffentlicht: Februar 2016

Wenn Sie die REST-APIs von einem mobilen Gerät verwenden, wird ein allgemeines Muster zum Speichern der RegistrationIds der Registrierungen, die dem Gerät im lokalen Speicher zugeordnet. Auf diese Weise können Sie Tags und Kanalinformationen mit einem einzigen Updateaufruf aktualisieren.

Da mobile Verbindungen nicht immer zuverlässig sind, es empfiehlt sich, zu vermeiden, erstellen eine neue Registrierung ohne Speichern der RegistrationId im lokalen Speicher. Dies kann dazu führen, dass das Gerät die Registrierung mehrfach ausführt. Das Ergebnis sind Benachrichtigungsduplikate. Dies erreichen Sie mithilfe der Erstellen einer Registrierungs-ID und Erstellen oder Aktualisieren der Registrierung REST-APIs.

Die erste API gibt eine RegistrationId ohne Erstellung einer Registrierungs. Wenn die ID sicher im Speicher Geräts gespeichert wurde, kann das Gerät Aufrufen der Erstellen oder Aktualisieren der Registrierung API.

Wichtig

Damit der lokale Speicher des Geräts mit dem Hub selbst beim Verlust der Daten des lokalen Speichers synchronisiert bleibt, wird empfohlen, alle Registrierungen beim aktuellen Kanal (also ChannelURI, Gerätetoken oder GCM-registrationId) jedes Mal zu löschen, wenn der lokale Speicher nicht initialisiert wird.

Der folgende Javascript-Code erstellt ein RegistrationId mit jQuery:

var createRegistrationId = function() { var registrationPath = hub.hubPath + "/Registrations"; var serverUrl = hub.endpoint + registrationPath + "?api-version=2015-01"; var token = getSelfSignedToken(serverUrl,sasKeyValue, sasKeyName, 60); var deferred = $.Deferred(); $.ajax({ type : "POST", url : serverUrl, headers : { "Authorization" : token }, }).done(function(data, status, response) { var location = response.getResponseHeader("Content-Location"); deferred.resolve(location); }).fail(function(response, status, error) { console.log("Error: " + error); deferred.reject("Error: " + error); }); return deferred.promise(); };  

Der Vorgang erstellen oder aktualisieren ("Upsert") ist ein einfacher PUT für den zurückgegebenen Speicherort aufrufen. Sie können die Registrierung XML-Text auf die gleiche Weise erstellen, wie in beschrieben die Verwenden von REST-APIs von einem Back-End aus Abschnitt.

Der folgende Javascript-Code zeigt einen "UPSERT"-Vorgang.

var updateRegistration = function(location, registration) { var registrationPayload = buildCreatePayload(registration); var serverUrl = location; var token = getSelfSignedToken(serverUrl, sasKeyValue, sasKeyName, 60); var deferred = $.Deferred(); return $.ajax({ type : "PUT", url : serverUrl, headers : { "Content-Type" : "application/atom+xml", "Authorization" : token, }, data : registrationPayload }).done(function(data, status, response) { var location = response.getResponseHeader("Content-Location"); deferred.resolve(location); }).fail(function(response, status, error) { console.log("Error: " + error); deferred.reject("Error: " + error); }); return deferred.promise(); };