Naše API vidí entity aplikace (projekty, úlohy, nastavení) jako zdroje, které lze získat, vytvořit, upravit a odstranit.
Každá metoda HTTP představuje akci:
-
GET
Získá zdroj, aniž by jej kdykoli změnila
-
POST
Vytvoří zdroj. POST se také používá pro operace, které nezapadají do žádné ze čtyř operací nebo mají dlouhý či složitý vstup – jako je vyhledávání v překladových pamětech nebo vytváření úloh.
-
PUT
Aktualizuje zdroj. Vezměte prosím na vědomí, že je vyžadována celá entita se všemi svými poli, nejen ta změněná; pokud ji neuvedete, znamená to, že by měla být nastavena na null.
-
ODSTRANIT
Odstraní zdroj.
Důležité
Vstupní a výstupní data jsou obvykle ve formátu JSON, kódování UTF-8. Pro soubor jako typ obsahu těla požadavku se použije application/octet-stream nebo multipart/form-data.
Entity použijí plochou strukturu, kdykoli je to možné, aby se udržely dobré časy odezvy. Místo zahrnutí celých vedlejších objektů do odpovědí jsou obsaženy odkazy, které obsahují ID, UID a několik dalších atributů. Očekávají se buď objekty IDReference, nebo UidReference pro odkazování na související entity.
Všechny seznamy odpovědí jsou stránkovány. Použijte parametry pageNumber a pageSize k získání požadovaných dat. Maximální velikost stránky je 50.
Dokumentace
OpenAPI 3.0 se používá pro dokumentaci rozhraní API. Generátory kódu Swagger jsou doporučeny pro vývoj klientů.
Příklady rozhraní API
Získat seznam všech překladových pamětí
GET
/web/api2/v1/transMemories
Odpověď
200
{
"pageNumber": 0,
"content": [
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "Jan",
"lastName": "Janocko",
"role": "ADMIN",
"email": "jan.janocko@phrase.com"
},
"klient": null,
"note": "není nutné použít v 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
}
Vytvořit novou překladovou paměť
POST
/web/api2/v1/transMemories
{{
"name": "My new TM",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"note": "není nutné použít v TM"
}
Odpověď
201
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "J",
"lastName": "Jan",
"role": "ADMIN",
"email": "jan.j@phrase.com"
},
"klient": null,
"note": "není nutné použít v 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"
}
Přidání souborů při vytváření zakázky
Přidejte tento soubor do těla požadavku jako binární přílohu. Zajistěte, aby byly hlavičky Phrase a Content-Disposition správně vloženy.
Ukázka PHP z 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' => 'Zde vložte svůj token'
));
$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;
}
Zpracování chyb
Pokud při zpracování požadavku API nastane problém, bude vrácena následující struktura JSON. Kód chyby bude vždy přítomen; podrobný popis může být null.
{ "errorCode": "InvalidArguments",
\"errorDescription\": \"Povinný argument \\\"password\\\" typu \\\"řetězec\\\" chybí.\"
}
Chybovou odpověď lze zjistit přečtením stav kódu odpovědi. Pokud dojde k chybě, nikdy nebude nastaven na 2xx. Stavový kód je 400 bad request, 401 nebo 403 pro problémy s ověřováním nebo autorizací.
Hlášení problémů
Při hlášení problému technické podpoře uveďte v hlášení následující:
-
Koncový bod API
-
Požadavek
-
Čas (a časové pásmo)
-
Odpověď
-
Phrase-Action-ID odpovědi