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
Im Server werden durch einen Klick auf das Menü "API" eine Übersicht der exportierten Services, sowie der Servicepfad abgerufen.
Service-Formate
Die TimePunch API arbeitet auf Basis der Windows Communication Foundation (WCF). Die Services können mittels WS und SOAP-Binding angesprochen werden.
Eine Web API ist geplant, aber zurzeit noch nicht verfügbar.
WS-http Binding:
Die WS-http Binding Adresse entspricht immer der Adresse die im TimePunch Server gelistet ist: z.B. http://tpServer/TimePunch/API/TpAuth.svc
Basic-http Binding (SOAP Binding):
Die Adresse des Basic-http Binding, oder SOAP Binding, entspricht der WS-Binding Adresse mit einem angehängten SOAP. z.B. http://tpServer/TimePunch/API/TpAuth.svc/soap
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}"));