Phrase TMS API

API-Technologie (TMS)

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

Unsere API betrachtet Anwendungseinheiten (Projekte, Jobs, Einstellungen) als Ressourcen, die abgerufen, erstellt, modifiziert 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 in keine der vier Operationen passen oder lange oder komplexe Eingaben haben – wie das Suchen von Übersetzungsspeichern oder das Erstellen von Jobs.

  • PUT

    Aktualisiert die Ressource. Bitte beachten Sie, dass die gesamte Entität mit all ihren 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 sind normalerweise im JSON-Format, UTF-8 kodiert. 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 Objekte in Antworten einzuschließen, werden Referenzen, die die ID, UID und einige andere Attribute enthalten, bereitgestellt. Entweder IDReference oder UidReference Objekte, um auf verwandte Entitäten zu verweisen, werden erwartet.

Alle Antwortlisten sind seitenweise. Verwenden Sie die Parameter pageNumber und pageSize, um die angeforderten Daten abzurufen. 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 Client-Entwicklung empfohlen.

API-Beispiele

Liste aller Übersetzungsspeicher abrufen

GET

/web/api2/v1/transMemories

Antwort

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 verwendet zu werden",
            "dateCreated": "2018-01-09T14:07:46+0000",
            "id": "1",
            "targetLangs": [
                "es",
                "it"
            ],
            "subDomain": null,
            "businessUnit": {
                "id": "1",
                "name": "Erste BU"
            },
            "sourceLang": "en",
            "domain": null,
            "name": "Mein neuer TM"
        }
    ],
    "numberOfElements": 1,
    "totalElements": 1,
    "pageSize": 50,
    "totalPages": 1
}

Neuen Übersetzungsspeicher erstellen

POST

/web/api2/v1/transMemories

{{
"name": "Mein neues TM",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"note": "nicht notwendig, um im TM verwendet zu werden"
}

Antwort

201

{
    "internalId": 1,
    "createdBy": {
        "userName": "admin",
        "id": "3",
        "firstName": "J",
        "lastName": "Jan",
        "role": "ADMIN",
        "email": "jan.j@phrase.com"
    },
    "client": null,
    "note": "nicht notwendig, um in TM verwendet zu werden",
    "dateCreated": "2018-01-09T14:07:46+0000",
    "id": "1",
    "targetLangs": [
        "es",
        "it"
    ],
    "subDomain": null,
    "businessUnit": {
        "id": "1",
        "name": "Erste BU"
    },
    "sourceLang": "en",
    "domain": null,
    "name": "Mein neuer TM"
}

Dateien hinzufügen beim Erstellen eines Jobs

Fügen Sie diese Datei als binäre Anlage in den Body der Anfrage ein. Stellen Sie sicher, dass die Phrase und die Content-Disposition-Header korrekt eingefügt sind.

Beispiel-PHP aus Postman:

<?php

$request = new HttpRequest();
$request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BUID%20Ihres%20Projekts%7D/jobs');
$request->setMethod(HTTP_METH_POST);

$request->setQueryData(array(
'token' => 'Ihr 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": "InvalidArguments",
"errorDescription": "Das erforderliche Argument \"password\" vom Typ \"Zeichenfolge\" fehlt."
}

Eine Fehlerantwort kann durch das Lesen des HTTP-Status Code der Antwort erkannt werden. Wenn ein Fehler auftritt, wird er niemals auf 2xx gesetzt. Der Statuscode ist 400 schlechte Anfrage, 401 oder 403 bei Authentifizierungs- oder Autorisierungsproblemen.

Probleme melden

Beim Melden eines Problems an Technischen Support sind die folgenden Punkte im Bericht zu berücksichtigen:

  • API-Endpunkt

  • Anfrage

  • Zeit (und Zeitzone)

  • Antwort

  • Phrase-Aktions-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.