Unsere API sieht Anwendungseinheiten (Projekte, Jobs, Einstellungen) als Ressourcen, die abgerufen, erstellt, geändert und gelöscht werden können.
Jede HTTP-Methode stellt eine Aktion dar:
-
GET
Ruft eine Ressource ab, ohne die Ressource zu ändern.
-
POST
Erstellt eine Ressource. POST wird auch für Operationen verwendet, die nicht in eine der vier Operationen passen oder lange oder komplexe Eingaben erfordern – wie etwa die Suche in Translation Memory oder das Erstellen von Jobs.
-
PUT
Aktualisiert die Ressource. Zu beachten ist, dass die gesamte Entität mit allen Feldern erforderlich ist, nicht nur die geänderten; das Nicht-Einschließen bedeutet, dass sie auf null gesetzt werden sollte.
-
DELETE
Löscht die Ressource.
Wichtig
Eingabe- und Ausgabedaten liegen normalerweise im JSON-Format, UTF-8 kodiert vor. Für eine Datei als Anfrage-Body-Inhaltstyp wird application/octet-stream oder multipart/form-data verwendet.
Entitäten verwenden eine flache Struktur, wenn möglich, um gute Antwortzeiten zu gewährleisten. Anstatt ganze untergeordnete Elemente in Antworten einzuschließen, werden Referenzen, die die ID, UID und einige andere Attribute enthalten, bereitgestellt. Entweder IDReference oder UidReferenc Objekte, um auf verwandte Entitäten zu verweisen, werden erwartet.
Alle Antwortlisten sind paginiert. Für den Abruf der angeforderten Daten sollen die Parameter pageNumber und pageSize verwendet werden. Die maximale Seitengröße beträgt 50.
Dokumentation
OpenAPI 3.0 wird für die API-Dokumentation verwendet. Swagger-Code-Generatoren werden für die Kundenentwicklung empfohlen.
API-Beispiele
Liste aller Translation Memories abrufen
GET
/web/api2/v1/transMemories
Response
200
{
"pageNumber": 0,
"content": [
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "Jan",
"lastName": "Janocko",
"role": "ADMIN",
"email": "jan.janocko@phrase.com"
},
"client": null,
"note": "nicht notwendig, um in TM zu verwenden",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
"es",
"it"
],
"subDomain": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"domain": null,
"name": "My new TM"
}
],
"numberOfElements": 1,
"totalElements": 1,
"pageSize": 50,
"totalPages": 1
}
Neues Translation Memory erstellen
POST
/web/api2/v1/transMemories
{{
"name": "My new TM",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"note": "nicht notwendig, um in TM verwendet zu werden"
}
Response
201
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "J",
"lastName": "Jan",
"role": "ADMIN",
"email": "jan.j@phrase.com"
},
"client": null,
"note": "nicht notwendig, in TM zu verwenden",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
"es",
"it"
],
"subDomain": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"domain": null,
"name": "Mein neuer TM"
}
Dateien beim Erstellen eines Jobs hinzufügen
Diese Datei ist als binärer Anhang zum Anfragekörper hinzuzufügen. Sicherstellen, dass die Phrase- und Content-Disposition-Header korrekt eingefügt sind.
PHP-Beispiel aus Postman:
<?php
$request = new HttpRequest();
$request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BUID%20deines%20Projekts%7D/jobs');
$request->setMethod(HTTP_METH_POST);
$request->setQueryData(array(
'token' => 'Dein Token kommt hierhin'
));
$request->setHeaders(array(
'postman-token' => 'ABC',
'cache-control' => 'no-cache',
'content-disposition' => 'filename*=UTF-8''Sample.txt',
'memsource' => '{\\"targetLangs\\":[\\"de\\",\\"fr\\",\\"es\\"],\\"callbackUrl\\":\\"https://my-shiny-service.com/consumeCallback\\",\\"importSettings\\":{\\"uid\\":\\"WF0T1SfSHxII09yKr0dZh9\\"}}'
));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
Fehlerbehandlung
Wenn ein Problem bei der Verarbeitung einer API-Anfrage auftritt, wird die folgende JSON Struktur zurückgegeben. Der Fehlercode wird immer vorhanden sein; die detaillierte Beschreibung kann null sein.
{ "errorCode": "UngültigeArgumente",
"errorDescription": "Erforderliches Argument \"password\" vom Typ \"Zeichenfolge\" fehlt."
}
Eine Fehlermeldung kann erkannt werden, indem der HTTP-Status code of the response gelesen wird. Wenn ein Fehler auftritt, wird er niemals auf 2xx gesetzt. Der Statuscode ist 400 Bad Request, 401 oder 403 bei Authentifizierungs- oder Autorisierungsproblemen.
Probleme melden
Beim Melden von Problemen an Technical Support sollten folgende Informationen im Bericht enthalten sein:
-
API-Endpunkt
-
Anforderung
-
Zeit (und Zeitzone)
-
Antwort
-
Phrase-Action-ID der Antwort