Zum Hauptinhalt springen
Version: 4.2 (2027 H1)

API

Über die primedocs Web API lassen sich Informationen abfragen und Dokumentgenerierungen auslösen. Folgende Schnittstellen stehen zur Verfügung:

Informationen zur Anmeldung an der API finden Sie unter Authentifizierung.

Basis-URL und Routing​

Alle Endpunkte sind versioniert und liegen unter dem Routen-Präfix /api/v3/{datasourceId}/…. In einer Standard-Installation ist die Web API zusätzlich unter dem Host-Pfad /webapi eingebunden, sodass sich die vollständige URL wie folgt zusammensetzt:

https://{instanz}/webapi/api/v3/{datasourceId}/…

Die {datasourceId} identifiziert die anzusprechende Datasource.

Fehlerbehandlung​

Erfolgreiche Aufrufe antworten mit 2xx. Fehlerhafte Aufrufe beantwortet die Web API mit einem Problem-Dokument nach RFC 7807 im Medientyp application/problem+json. Das gilt für Admin API, Connect API und Connect Session API und auch für Fehler, die vor dem eigentlichen Endpunkt entstehen, etwa bei der Authentifizierung oder bei einer unbekannten datasourceId.

Beispiel für ein Connect ohne Author-Element an POST …/Connect/Document:

{
"type": "about:blank",
"title": "Bad request",
"status": 400,
"detail": "Invalid connect: No Author is set. Add an Author element with a Profile Id to the connect.",
"instance": "/api/v3/{datasourceId}/Connect/Document",
"code": "Connect.Invalid",
"correlationId": "0HN7ABCDEF:00000001"
}
FeldBeschreibung
typeImmer about:blank.
titleKurze Zusammenfassung zum Status, z.B. Bad request.
statusHTTP-Statuscode der Antwort.
detailBeschreibung des Fehlers, bei Eingabe- und Ausführungsfehlern mit dem Grund und, wo möglich, der nötigen Korrektur.
instanceAufgerufener Pfad. Fehlt, wenn der Pfad vertrauliche Werte enthalten könnte.
codeStabiler, maschinenlesbarer Fehlercode, siehe Fehlercodes.
correlationIdKennung des Aufrufs. Derselbe Wert steht im Antwort-Header X-Correlation-ID und im Server-Log.
errors (optional)Weitere Meldungen, die detail nicht bereits enthält.
helpLink (optional)Verweis auf weiterführende Dokumentation, sofern vorhanden.

Weitere Felder sind möglich, etwa unavailableConnectedServiceKeys bei Connect.ConnectedServicesNotReady (siehe Connect Session API).

Statuscodes​

StatusBedeutung
400 Bad RequestUngültige Eingabe, z.B. fehlerhaftes oder unvollständiges Connect-XML, ein Connect ohne Author, ungültige Sprachcodes oder Parameter, die der Endpunkt ausdrücklich prüft (InvalidQuery, InvalidBody). Der Aufrufer kann den Fehler selbst beheben. Nicht lesbare Query- oder Routenwerte führen nicht überall zu 400.
401 UnauthorizedKein oder ungültiges Access Token, siehe Authentifizierungsfehler.
403 ForbiddenDas Token besitzt nicht die nötigen Rechte (Scope/Rolle) für die Operation.
404 Not FoundDie Ressource wurde nicht gefunden, z.B. eine unbekannte datasourceId, ein unbekannter Benutzer oder eine abgelaufene Session.
409 ConflictDie Änderung widerspricht dem aktuellen Zustand, z.B. bei einer gleichzeitigen Änderung.
413 Payload Too LargeDer Request-Body überschreitet die zulässige Grösse.
422 Unprocessable EntityDie Anfrage ist gültig, konnte aber nicht ausgeführt werden, z.B. wegen ungültiger Formularwerte, fehlerhafter Inhalte in Data, einer nicht unterstützten Dokumentsprache, eines fehlenden MIP-Zugriffs oder einer Connect-Policy.
500 Internal Server ErrorUnerwarteter technischer Fehler. Die Antwort enthält nur eine allgemeine Meldung und die correlationId.
503 Service UnavailableEin benötigter Dienst ist nicht erreichbar, z.B. der Identity Server bei der Prüfung des Tokens (AuthenticationUnavailable), oder der Server ist für die Anfrage nicht eingerichtet (Admin.ImportExport.NotConfigured). Bei AuthenticationUnavailable den Aufruf später wiederholen.

Fehler auswerten​

  • Status und code auswerten. code ist Teil des Vertrags und ändert sich nicht ohne Ankündigung. Verzweigungen in einer Integration darauf abstützen, nicht auf title oder detail.
  • detail ist immer englisch und wird weder nach der Sprache des Aufrufers noch nach der des Benutzers übersetzt. Der Text richtet sich an das integrierende System und seine Entwickler. Für eine Anzeige an Endbenutzer gezielt einsetzen oder durch eigene Texte ersetzen.
  • correlationId für den Support angeben. Interne Fehlerdetails wie Exception-Meldungen oder Stacktraces gibt die API nicht heraus. Sie stehen unter derselben Kennung im Server-Log.

Fehlercodes​

Allgemeine Codes sagen nicht mehr als der Status und stehen, wenn kein spezifischer Code zutrifft:

CodeBedeutung
BadRequestUngültige Anfrage
InvalidBodyDer Request-Body konnte nicht gelesen werden
InvalidQueryEin Query- oder Routenparameter fehlt oder ist ungültig
NotFoundRessource nicht gefunden
UnauthorizedKein oder ungültiges Access Token
AuthenticationUnavailableDas Token konnte nicht geprüft werden, weil der Identity Server nicht antwortet
ForbiddenFehlende Berechtigung
ConcurrentModificationDie Änderung ist mit einer gleichzeitigen Änderung kollidiert (nur Admin API)
TechnicalErrorUnerwarteter technischer Fehler

Connect API und Connect Session API:

CodeBedeutung
Connect.EmptyKein Connect im Request
Connect.InvalidDas Connect ist ungültig, etwa nicht wohlgeformt oder ohne Author
Connect.NotSupportedDas Connect verlangt etwas, das der Endpunkt nicht unterstützt, z.B. lokale Dateipfade oder Desktop-Befehle
Connect.MultipartDocumentMissingBei /Update fehlt im Multipart-Request der Teil document
Connect.InvalidConversionUngültiger Wert für conversion
Connect.UserNotResolvedDie Benutzerabfrage ergibt keinen oder mehrere Benutzer
Connect.ExecutionFailedDas Connect konnte nicht ausgeführt werden. detail und errors nennen die Gründe
Connect.SessionNotFoundDie Session existiert nicht oder ist abgelaufen
Connect.SessionResultNotFoundFür die Ausführung ist kein Ergebnis gespeichert
Connect.InvalidSessionTemplateDie Connect Session Template ist ungültig oder nicht angegeben
Connect.ConnectedServicesNotReadyDer Benutzer muss sich zuerst bei Connected Services anmelden

Admin API:

CodeBedeutung
Admin.RequiresRoleDem Aufrufer fehlt die nötige Administrationsrolle
Admin.RequiresAdminApiClientDer Endpunkt steht nur Admin-API-Clients und im Web-Admin angemeldeten Administratoren offen, nicht Connect- oder MCP-Tokens
Admin.SecretsRequireInteractiveUserDie Operation zeigt oder ersetzt Geheimnisse und steht nur einem im Web-Admin angemeldeten Administrator offen
Admin.InvalidRowVersionrowVersion fehlt oder ist kein vom Server ausgegebener Wert
Admin.Role.UnknownDie Route nennt keine der festen Administrationsrollen
Admin.Role.UnsupportedPrincipalTypeRollen lassen sich nur Benutzern, Verzeichnisgruppen und App-Gruppen zuweisen
Admin.Role.PrincipalNotFoundDas Konto existiert in dieser Datasource nicht
Admin.Role.NotMaterializedDie Rollendefinition existiert in dieser Datasource nicht
Admin.Role.DefinitionConflictFür die Rolle bestehen mehrere Definitionen
Admin.Role.MembershipConflictDie Rollenmitgliedschaft wurde gleichzeitig geändert
Admin.DynamicGroup.ConfigurationMissingDie dynamische Gruppe hat keine gespeicherte Konfiguration
Admin.DynamicGroup.EvaluationFailedDie gespeicherte Konfiguration der dynamischen Gruppe lässt sich nicht auswerten
Admin.OrganizationUnit.InvalidThemeDas Thema der Organisationseinheit ist ungültig, z.B. fehlerhaftes XML
Admin.OrganizationUnit.ThemeRequiresDedicatedEndpointThemenfelder werden über den Themen-Endpunkt geschrieben, nicht über die Aktualisierung der Organisationseinheit
Admin.ImportExport.NotConfiguredAuf dem Server ist kein Pfad für Export und Import konfiguriert
Admin.ImportExport.InvalidSelectionDie gewählten Objekte, Abhängigkeiten oder Katalogknoten sind unbekannt oder leer
Admin.ImportExport.MissingPackageFileDie Paketdatei fehlt
Admin.ImportExport.UnsupportedPackageFormatDas Paketformat wird nicht unterstützt
Admin.ImportExport.PackageTooLargeDas Paket ist zu gross
Admin.ImportExport.LegacyFileDer Export wurde mit der früheren DataSourceAdminApp erstellt, die Datei liegt dort
Admin.ImportExport.ExportNotFinishedDer Export ist noch nicht abgeschlossen
Admin.ImportExport.FileNoLongerAvailableDie Paketdatei wurde entfernt, ein neuer Export ist nötig
Admin.ImportExport.InvalidDownloadLinkDer Download-Link ist ungültig oder abgelaufen
Admin.ImportExport.InvalidChunkContent-Range, uploadId oder die Länge des Teilstücks sind ungültig
Admin.ImportExport.UploadNotFoundDer Upload existiert nicht
Admin.ImportExport.UploadInProgressDer Upload läuft noch
Admin.ImportExport.UploadAlreadyCompletedDer Upload ist bereits abgeschlossen
Admin.ImportExport.UploadTotalChangedDie Gesamtgrösse des Uploads hat sich geändert
Admin.ImportExport.UploadChunkOutOfOrderDas Teilstück passt nicht zur bisherigen Reihenfolge
Admin.ImportExport.ImportBusyEine andere Anfrage bearbeitet den Import gerade. Den Aufruf später wiederholen
Admin.ImportExport.InvalidImportStateDer Import lässt den verlangten Schritt in seinem aktuellen Zustand nicht zu

Ohne spezifischen Code steht bei 400, 401, 403 und 404 der allgemeine Code, bei allen 5xx TechnicalError und bei den übrigen Statuscodes die Form Http<Status>, etwa Http409 oder Http413.

Kompatibilität​

  • v2-Endpunkte behalten ihre bisherigen Statuscodes, ausser dass ein serverseitiger Abbruch neu 500 statt eines leeren 200 ergibt. Fehler aus der gemeinsamen Fehlerbehandlung beantworten sie ebenfalls mit application/problem+json, und in ihren Ausführungsberichten entfällt InternalMessage. Integrationen, die bisher message und isError oder einen leeren Antwortkörper ausgewertet haben, auf status, code und detail umstellen.
  • SCIM-Endpunkte verwenden weiterhin die Fehlerantworten des SCIM-Standards.
  • …/Admin/Fields und …/Admin/Search beantworten Bindungsfehler (ungültiger JSON-Body, ungültiger Query-Wert) mit dem ASP.NET-Standardformat ValidationProblemDetails, ohne code und correlationId.