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