So erhalten Sie einen Benutzernamen durch REST
-
10-12-2019 - |
Frage
Ich arbeite derzeit mit einer Aufgabe, bei der Sie in einer Farm eine Aufteilungsliste haben, die einige Daten enthält, die wir zu einer Ansicht auf einer anderen Farm aggregieren müssen.Daher arbeite ich an einem visuellen Webpart, das über die SharePoint 2013 REST-API die Elemente in der Liste abruft, die Informationen in einer Datentabelle aggregiert und dann die Informationen anzeigt.
// Construct URI
string restUrl = string.Format(SiteCollectionUrl +
"/_api/web/lists/getByTitle('projectregister')/items" +
"?$select=LeadId");
Uri uri = new Uri(restUrl);
Die Liste implementiert jedoch einen SPFieldType .Benutzer, bei dem Sie einen Benutzer auswählen können, und wenn Sie sich das XML ansehen, das der Aufruf zurückgibt, erhalten Sie nur eine Ganzzahl.Ich hätte gerade eine Methode implementiert, die die Benutzer-ID nachschlägt und den Benutzernamen abruft, aber das funktioniert nicht, da es sich um das Aggregieren von Daten über zwei verschiedene SharePoint-Farmen handelt.
<d:LeadId m:type="Edm.Int32">1</d:LeadId>
Der interne Name des SPFelds heißt "Lead", aber irgendwie existiert das nicht, wenn es im REST-Aufruf ausgewählt wird und die Auswahl von "all" nur die LeadId und andere zurückgibt, die für diese Frage nicht relevant sind.
Weiß jemand, wie man die GUID des Benutzernamens anstelle dieser Ganzzahl zurückgibt?
Danke!
Lösung
Wenn Sie zusätzliche Eigenschaften des abrufen müssen User
feld in einem REST-Aufruf können Sie es zum Laufen bringen, indem Sie die Projektion für das Hinzufügen User
feldspalte.Für weitere Details folgen Sie bitte einem Artikel Abrufen von Benutzerinformationen mit der SharePoint 2013 REST-API
Beispiel:
In Ihrem Fall gibt der folgende REST-Endpunkt den Benutzer zurück ID
, Title
und Guid
für Lead
Benutzerspalte:
/_api/web/lists/getByTitle('projectregister')/items?$select=Lead/Id,Lead/GUID,Lead/Title&$expand=Lead/Id