Phrase TMS API

API Technology (TMS)

Inhalte werden von Phrase Language AI maschinell aus dem Englischen übersetzt.

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

War dieser Beitrag hilfreich?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.