Web API
Time cockpit bietet eine webbasierte API. Über HTTP, REST und JSON können Sie Informationen abrufen und ändern, ohne von unserem .NET SDK abhängig zu sein. Dieser Dienst wird öffentlich gehostet, Kunden müssen keine zusätzlichen Installations- oder Konfigurationsschritte durchführen.
Service-Endpunkt
Die Adresse unserer Web API ist https://api.timecockpit.com. Sie ist nur über HTTPS und mit gültiger Authentifizierung erreichbar.
Authentifizierung
Derzeit werden drei Arten der Authentifizierung unterstützt:
- Token-Authentifizierung bietet eine einfache und effiziente Möglichkeit, Webanfragen zu authentifizieren. Ein Header überträgt das Zugriffstoken und identifiziert den Inhaber (Bearer).
- Basic-Authentifizierung mit Benutzername und Passwort wird von Werkzeugen verwendet, die keine Token-Authentifizierung anbieten (z. B. OData in Excel), sowie zum erstmaligen Abrufen von Authentifizierungstokens.
Warnung
Wir raten dringend von Token- oder Basic-Authentifizierung ab. Diese Authentifizierungsarten werden in absehbarer Zeit deaktiviert. Wir empfehlen dringend, sich mit PATs zu authentifizieren.
Das folgende Beispiel zeigt, wie Sie über eine einfache Webanfrage ein Token abrufen und eine beispielhafte Dienstanfrage mit Token-Authentifizierung senden:
var tokenUri = "https://api.timecockpit.com/token";
var metadataUri = "https://api.timecockpit.com/odata/$metadata";
using (var client = new HttpClient())
{
// set basic credentials and acquire token
client.Credentials = new NetworkCredential("demo@timecockpit.com", "...");
var token = client.DownloadString(tokenUri);
// remove basic credentials and add token to headers
client.Credentials = null;
client.Headers.Add("Authorization", "Bearer " + token);
// example service usage: retrieve and parser metadata
var metadata = XDocument.Parse(client.DownloadString(metadataUri));
}
Die relevanten Webanfragen dieses Beispiels sind:
Token-Anfrage
GET https://api.timecockpit.com/token HTTP/1.1
Authorization: Basic bmljZTp0cnkgOik=
Host: api.timecockpit.com
Metadaten-Anfrage
GET https://api.timecockpit.com/odata/$metadata HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
Host: api.timecockpit.com
Metadaten-Antwort
HTTP/1.1 200 OK
Content-Length: 53769
Content-Type: application/xml; charset=utf-8
Server: Microsoft-IIS/8.0
DataServiceVersion: 3.0
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=244116e25a72155d832c22601a40ae87af7d9c2cb18a99a181efeffc297cbc64;Path=/;Domain=api.timecockpit.com
Date: Wed, 30 Apr 2014 11:08:26 GMT
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">
<edmx:DataServices m:DataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<Schema Namespace="cofx" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
<EntityType Name="APP_CalendarWeekRule">
<Key>
<PropertyRef Name="APP_CalendarWeekRuleUuid" />
</Key>
<Property Name="APP_CalendarWeekRuleUuid" Type="Edm.Guid" Nullable="false" />
<Property Name="APP_CalendarWeekRuleCode" Type="Edm.String" />
<Property Name="APP_CalendarWeekRuleName" Type="Edm.String" />
<!-- .... -->
Aktuelle Einschränkungen
Die API ist nur mit aktuellen time cockpit Versionen getestet. Wenn Ihr Konto noch nie mit einer time cockpit Version >= 1.10 (März 2013) verwendet wurde, muss es mit einem aktuellen Vollclient aktualisiert werden.