REST-API Schnittstelle
Über eine REST-API Schnittstelle die als Webservice zur Verfügung gestellt wird ist der Zugriff auf die Project-Center zugrundeliegende Daten möglich.
Die REST-API Schnittstelle ist ab Project-Center Version 5.0 verfügbar.
Die Nutzung der REST-API Schnittstelle erfordert die Lizenzierung der Erweiterung “REST-API” (PRC-RESTAPI).
Webservice Endpunkt
Die REST-API Schnittstelle wird über HTTP Aufrufe an eine individuelle URL angesprochen, z.B.
https://IhreAPIAdresse.de/api/Project/getall
Hierbei stellen wir Ihnen auf Anfrage die für Ihre Project-Center Instanz passende URL-Adresse (oben “https://IhreAPIAdresse.de
") zur Verfügung.
Authentifizierung
Die Autenthifizierung erfolgt über ein geheimen “Token“ der im Header des HTTP-Aufrufes gesetzt werden muss. Als Name des Headers ist hierbei “Bearer” zu setzen, als Wert der geheime Token (siehe unten “123456789
“). Dies kann zum Beispiel wie folgt aussehen:
curl -X 'GET' \
'https://IhreAPIAdresse.de//api/Activity/getall' \
-H 'Bearer: 123456789'
Der Token lässt sich über die Desktop-Anwendung unter “Verwaltung”->”Programm Einstellungen” und dann Links “Allgemein” ->”Sonstige Einstellungen” unter Kategorie “Rest-API” und Wert “API-Token für REST-API” abrufen und bearbeiten. Bitte beachen Sie hierbei daß die Länge des Tokens mindestens 36 Zeichen betragen muss.
Zugriff auf Datenbank-Objekte
Über die REST-API sind folgende Datenbank-Objekte verfügbar:
Objektname | Beschreibung | Zugriffsebene |
---|---|---|
Activity | Zugriff auf Aktivitäten | Lesen/Schreiben |
ActivityType | Zugriff auf Aktivitätstypen | Lesen |
Address | Zugriff auf Adressen | Lesen/Schreiben |
Appointment | Zugriff auf Termine des Teamplaners | Lesen/Schreiben |
Client | Zugriff auf Mandanten | Lesen |
Contact | Zugriff auf Kontakte von Adressen | Lesen/Schreiben |
OrderDocument | Zugriff auf Auftragsdokumente (Angebote, Rechnungen, Lieferscheine, …) | Lesen/Schreiben |
OrderDocumentPosition | Zugriff auf Positionen von Auftragsdokumenten (Artikeldaten) | Lesen/Schreiben |
OrderDocumentStatus | Zugriff auf den Status von Autragsdokumenten | Lesen |
OrderDocumentType | Zugriff auf Typen von Auftragsdokumenten (Angebot, Rechnung, …) | Lesen |
Project | Zugriff auf Projekte | Lesen/Schreiben |
ProjectStatus | Zugriff auf die Stati von Projekten | Lesen |
ProjectType | Zugriff auf Typen von Projekten | Lesen |
ProjectWorktime | Zugriff auf Arbeitszeiten von Projekten | Lesen/Schreiben |
User | Zugriff auf Benutzer | Lesen |
Funktionen von Objekten
Zum Zugriff auf die Datenbankobjekte stehen folgende Funktionsaufrufe zur Verfügung:
Funktionsaufruf | Beschreibung |
---|---|
getall | Ruft alle Datensätze des Datenbankobjektes ab |
get/{id} | Ruft den über den eindeutigen Schlüssel im URL-Parameter spezifizierten Datensatz ab |
find | Ruft unter verwendung der Parameter “fieldName, condition, argumentValue” alle Datensätze ab die der über die Parameter definierten Filterbedingung entsprechen. Als Vergleichsoperator für den Parameter “condition” sind zulässig: Less, LessOrEqual, Equal, GreaterOrEqual, Greater, NotEqual |
add | Fügt einen Datensatz hinzu |
update | Aktualisiert einen bestehenden Datensatz |
delete/{id} | Löscht den über den eindeutigen Schlüssel im URL-Parameter spezifizierten Datensatz |
Funktionsaufrufe
Der Zugriff auf die verschiedenen Datenbank-Objekte über die jeweiligen Funktionen erfolgt durch Angabe des Objektnamens und der Funktion in der URL-Adresse. Im folgenden einige Beispiele:
GET https://IhreAPIAdresse.de/api/OBJEKTNAME/getall
GET https://IhreAPIAdresse.de/api/OBJEKTNAME/find?fieldName=Client&condition=Greater&argumentValue=0
POST https://IhreAPIAdresse.de/api/OBJEKTNAME/add
PUT https://IhreAPIAdresse.de/api/OBJEKTNAME/update
DELETE https://IhreAPIAdresse.de/api/OBJEKTNAME/delete/111
https://localhost:7269/api/OBJEKTNAME/getall
Hierbei liefern die Http-GET Aufrufe entsprechende Daten im JSON-Format zurück, also z.B.:
{
"currentPage": 1,
"totalPages": 1,
"pageSize": 1000,
"totalCount": 1,
"items": [
{
"id": 330,
"name": "Max Mustermann",
"name2": null,
"name3": null,
"matchCode": null,
"street": "Musterweg. 144",
"zip": "84533",
"town": "Musterhausen",
"country": null,
"phone": "76543/123456",
"fax": null,
"eMail": "x@y.de",
"web": null,
"mainContact": null,
"isSupplier": false,
"addressNumber": null,
"isHouseManagement": null,
"companyId": "d63294c4-b7e6-e911-94f9-0050b620b707",
"creditNr": null,
"debitNr": 70112,
"mobile": null,
"customerNr": "5001",
"pretaxEntitled": false,
"phone2": null,
"notes": null,
"iban": null,
"bic": null,
"salutation": null,
"letterSalutation": null,
"remark": null,
"emailDocuments": null
}
]
}
Hierbei werden pro Rückgabe maximal 1000 Datensätze geliefert. Liefert die Anfrage mehr Datensätze (siehe “totalCount
") können unter verwendung des “pageNumber” Parameters weitere Datensätze abgefragt werden.
Bei add, update und delete Aufrufen sind die Daten des Datensatzes ebenfalls im JSON Format im Request-Body anzugeben.
Entwickler-Dokumentation und Test
Als weiterführenden Dokumentation und zum Schnittstellen-Test steht auf Anfrage eine “Swagger” Oberfläche zur Verfügung:
Die Swagger-Oberfläche beschreibt hierbei die einzelnen Funtionsaufrufe detailiert und ermöglicht den Aufruf dieser direkt aus der Swagger-Oberfläche:
Hierbei ist über die “Authorize” Schaltfläche der entsprechende geheime “Token” zu hinterlegen:
Bei Bedarf stellen wir Ihnen ergänzend ggf. einen API-Zugang auf eine Demo-Datenbank zur Verfügung.