Einleitung
Dieses Dokument beschreibt die API von TimePunch. Ziel ist, den Entwickler in die Lage zu versetzen, mit dem Backend von TimePunch zu kommunizieren, Daten auszutauschen, und so TimePunch in die IT-Infrastruktur besser integrieren zu können.
Installation
Die TimePunch API wird mit dem TimePunch Application Server installiert und ausgeliefert.
Zugriff über das TimePunch Web API Nuget Package
Seit Version 4.8 bietet TimePunch ein TimePunch Web API Nuget-Paket für den einfachen Zugriff auf die TimePunch-Webdienste.
Es kann unter dem Namen: TpWebWcf installiert werden.
NuGet Gallery | TpWebWcf
Und ist aufgrund der netStandard2.0-Konformität mit allen .net-Frameworks kompatibel.
Mit einem TimePunch Application Server verbinden
Um sich mit einem TimePunch Application Server zu verbinden, muss ein neues TimePunchInstance Objekt erstellt werden.
// Connect to the TimePunch Server
var timePunchInstance
= new TimePunchInstance(new Uri("https://demo.timepunch-hub.com/TimePunch"));
Den Anwender authentifizieren
Um sicherzustellen, dass der Benutzer auf die TimePunch-Instanz zugreifen darf, muss ein Authentifizierungsobjekt erstellt werden.
// Create an authentication object
var adminAuthentication
= TimePunchInstance.CreateAuthentication("{user}", "{pwd}");
Hinweis: Der Identitätsparameter (dritter Parameter) kann verwendet werden, um auf ein anderes TimePunch-Benutzerprofil zuzugreifen, mit den Rechten des Principals, welcher der Anmeldebenutzer ist (erster Parameter).
Erstellen einer Serviceverbindung
Der nächste Schritt besteht darin, eine Serviceverbindung zu erstellen. Dies kann der Projektdienst sein, wie im Beispiel, oder jeder andere Service, den TimePunch anbietet.
// Create the project service
var projectService = timePunchInstance.CreateProjectService();
Aufruf eines Web-Services
Schließlich können wir den Serviceaufruf ausführen und die Antwort validieren.
// Execute Project search
var spr = new SearchProjectsRequest(adminAuthentication, new ProjectSearchDto());
var response = projectService.SearchProjects(spr);
// Output projects
if (response.fault != null)
{
Console.WriteLine("Error: " + response.fault.Message);
return;
}
response.SearchProjectsResult
.ForEach(p => Console.WriteLine($"--> {p.ProjectName}"));