Naše API vidí aplikační entity (projekty, úkoly, nastavení) jako zdroje, které lze získat, vytvořit, upravit a odstranit.
Každá HTTP metoda představuje akci:
-
GET
Získává zdroj, nikdy neměnící zdroj
-
POST
Vytváří zdroj. POST se také používá pro operace, které se nevejdou do žádné ze čtyř operací nebo mají dlouhý nebo složitý vstup – jako je vyhledávání překladových pamětí nebo vytváření úkolů.
-
PUT
Aktualizuje zdroj. Vezměte prosím na vědomí, že je vyžadována celá entita se všemi jejími poli, nejen těmi změněnými; nezahrnutí znamená, že by mělo být nastaveno na null.
-
DELETE
Odstraní zdroj.
Důležité
Vstupní a výstupní data jsou obvykle ve formátu JSON, kódováno v UTF-8. Pro soubor jako typ obsahu těla žádosti se používá application/octet-stream nebo multipart/form-data.
Entity používají plochou strukturu, když je to možné, aby 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 objekty IDReference nebo UidReferenc, které odkazují na související entity.
Všechny seznamy odpovědí jsou stránkované. 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 API. Generátory kódu Swagger jsou doporučovány pro vývoj klienta.
Příklady 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" }, "client": null, "poznámka": "není nutné používat v TM", "dateCreated": "2018-01-09T14:07:46+0000", "id": "1", "targetLangs": [ "es", "it" ], "subdoména": null, "businessUnit": { "id": "1", "name": "První BU" }, "sourceLang": "en", "doména": null, "name": "Moje nová TM" } ], "numberOfElements": 1, "totalElements": 1, "pageSize": 50, "totalPages": 1 }
Vytvořit novou překladovou paměť
POST
/web/api2/v1/transMemories
{{ "name": "Moje nová TM", "sourceLang": "en", "targetLangs": [ "es", "it-IT" ], "businessUnit": { "id": "1" }, "poznámka": "není nutné používat v TM" }
Odpověď
201
{ "internalId": 1, "createdBy": { "userName": "admin", "id": "3", "firstName": "J", "lastName": "Jan", "role": "ADMIN", "email": "jan.j@phrase.com" }, "client": null, "poznámka": "není nutné používat v TM", "dateCreated": "2018-01-09T14:07:46+0000", "id": "1", "targetLangs": [ "es", "it" ], "subdoména": null, "businessUnit": { "id": "1", "name": "První BU" }, "sourceLang": "en", "doména": null, "name": "Moje nová TM" }
Přidání souborů při vytváření zakázky
Přidejte tento soubor do těla žádosti jako binární přílohu. Ujistěte se, že hlavičky Phrase a Content-Disposition jsou správně vloženy.
Ukázkový PHP kód z Postmanu:
<?php $request = new HttpRequest(); $request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BUID%20vašeho%20projektu%7D/jobs'); $request->setMethod(HTTP_METH_POST); $request->setQueryData(array( 'token' => 'Váš token sem patří' )); $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 dojde k problému při zpracování API požadavku, bude vrácena následující JSON struktura. Chybový kód bude vždy přítomen; podrobný popis může být null.
{ "errorCode": "NeplatnéArgumenty", "errorDescription": "Povinný argument \"heslo\" typu \"řetězec\" chybí." }
Odpověď s chybou lze detekovat přečtením HTTP statusu kód odpovědi. Pokud dojde k chybě, nikdy nebude nastaven na 2xx. Status kód je 400 špatný požadavek, 401 nebo 403 pro problémy s ověřováním nebo autorizací.
Hlásení problémů
Při hlášení problému technické podpoře zahrňte do zprávy následující:
-
Koncový bod API
-
Požadavek
-
Čas (a časové pásmo)
-
Odpověď
-
Fáze-akce-ID odpovědi