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