Phrase TMS API

API-Technologie (TMS)

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

Unsere API betrachtet Anwendungsentitäten (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 jemals zu ändern

  • POST

    Erstellt eine Ressource. POST wird auch für Vorgänge verwendet, die nicht in eine der vier Operationen passen oder einen langen oder komplexen Input haben – wie das Durchsuchen von Translation Memories 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; sie nicht einzuschließen bedeutet, dass sie auf null gesetzt werden sollte.

  • DELETE

    Löscht die Ressource.

Wichtig

Input- und Output-Daten sind normalerweise im JSON-Format, UTF-8-kodiert. Für eine Datei als Request-Body-Content-Typ wird application/octet-stream oder multipart/form-data verwendet.

Entitäten verwenden nach Möglichkeit eine flache Struktur, um gute Antwortzeiten beizubehalten. Anstatt ganze untergeordnete Objekte in Antworten einzuschließen, sind Referenzen enthalten, die die ID, UID und einige andere Attribute enthalten. Es werden entweder IDReference oder UidReference-Objekte erwartet, um auf verwandte Entitäten zu verweisen.

Alle Antwortlisten sind paginiert. Verwenden Sie die Parameter pageNumber und pageSize, um angeforderte Daten abzurufen. Die maximale Seitengröße beträgt 50.

Dokumentation

OpenAPI 3.0 wird für die API-Dokumentation verwendet. Swagger-Codegeneratoren werden für die Kunde-Entwicklung empfohlen.

API-Beispiele

Liste aller Translation Memorys 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": "not necessary to use in TM",
            "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": "not necessary to use in TM"
}

Antwort

201

{
    "internalId": 1,
    "createdBy": {
        "userName": "admin",
        "id": "3",
        "firstName": "J",
        "lastName": "Jan",
        "role": "ADMIN",
        "email": "jan.j@phrase.com"
    },
    "client": null,
    "note": "not necessary to use in TM",
    "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"
}

Hinzufügen von Dateien beim Erstellen eines Jobs

Fügen Sie diese Datei als binären Anhang zum Body der Anfrage hinzu. Stellen Sie sicher, dass Phrase und die 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%20of%20your%20project%7D/jobs');
$request->setMethod(HTTP_METH_POST);

$request->setQueryData(array(
'token' => 'Ihr Token kommt hierher'
));

$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 bei der Verarbeitung einer API Anfrage ein Problem auftritt, wird die folgende JSON Struktur zurückgegeben. Der Fehlercode ist immer vorhanden; die detaillierte Beschreibung kann null sein.

{ "errorCode": "InvalidArguments",
"errorDescription": "Erforderliches Argument \"password\" vom Typ \"Zeichenfolge\" fehlt."
}

Eine Fehlerantwort kann durch Lesen des HTTP-Status codes der Antwort erkannt werden. Wenn ein Fehler auftritt, wird er niemals auf 2xx gesetzt. Der Statuscode ist 400 Bad Request, 401 oder 403 bei Problemen mit der Authentifizierung oder Autorisierung.

Melden von Problemen

Wenn Sie Probleme an den technischen Support melden, fügen Sie Folgendes in den Bericht ein:

  • API-Endpunkt

  • Anforderung

  • Zeit (und Zeitzone)

  • Antwort

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