La nostra API vede le entità applicative (progetti, lavori, impostazioni) come risorse che possono essere recuperate, create, modificate ed eliminate.
Ogni metodo HTTP rappresenta un'azione:
-
GET
Recupera una risorsa, senza mai modificarla.
-
POST
Crea una risorsa. POST è utilizzato anche per operazioni che non rientrano in nessuna delle quattro operazioni o hanno input lunghi o complessi, come la ricerca di memorie di traduzione o la creazione di lavori.
-
PUT
Aggiorna la risorsa. Si prega di notare che è richiesta l'intera entità con tutti i suoi campi, non solo quelli modificati; non includerlo significa che dovrebbe essere impostato su null.
-
DELETE
Elimina la risorsa.
Importante
I dati di input e output sono solitamente in formato JSON, codificati in UTF-8. Per un file come tipo di contenuto del corpo della richiesta application/octet-stream o multipart/form-data è utilizzato.
Le entità utilizzano una struttura piatta quando possibile per mantenere buoni tempi di risposta. Invece di includere interi oggetti subordinati nelle risposte, sono contenute referenze che contengono l'ID, UID e alcuni altri attributi. Ci si aspetta che siano presenti oggetti IDReference o UidReferenc per riferirsi a entità correlate.
Tutte le liste di risposta sono paginate. Usa i parametri pageNumber e pageSize per recuperare i dati richiesti. La dimensione massima della pagina è 50.
Documentazione
OpenAPI 3.0 è utilizzato per la documentazione API. Generatori di codice Swagger sono raccomandati per lo sviluppo del client.
Esempi API
Ottieni l'elenco di tutte le memorie di traduzione
GET
/web/api2/v1/transMemories
Risposta
200
{ "pageNumber": 0, "content": [ { "internalId": 1, "creatoDa": { "userName": "admin", "id": "3", "firstName": "Jan", "lastName": "Janocko", "role": "ADMIN", "email": "jan.janocko@phrase.com" }, "cliente": null, "nota": "non necessario usare in TM", "dateCreated": "2018-01-09T14:07:46+0000", "id": "1", "targetLangs": [ "es", "it" ], "sottodominio": null, "businessUnit": { "id": "1", "name": "Primo BU" }, "sourceLang": "en", "dominio": null, "name": "Il mio nuovo TM" } ], "numberOfElements": 1, "totalElements": 1, "pageSize": 50, "totalPages": 1 }
Crea una nuova memoria di traduzione
POST
/web/api2/v1/transMemories
{{ "name": "Il mio nuovo TM", "sourceLang": "en", "targetLangs": [ "es", "it-IT" ], "businessUnit": { "id": "1" }, "nota": "non necessario da usare in TM" }
Risposta
201
{ "internalId": 1, "creatoDa": { "userName": "admin", "id": "3", "firstName": "J", "lastName": "Jan", "role": "ADMIN", "email": "jan.j@phrase.com" }, "cliente": null, "nota": "non necessario usare in TM", "dateCreated": "2018-01-09T14:07:46+0000", "id": "1", "targetLangs": [ "es", "it" ], "sottodominio": null, "businessUnit": { "id": "1", "name": "Primo BU" }, "sourceLang": "en", "dominio": null, "name": "Il mio nuovo TM" }
Aggiunta di file durante la creazione di un lavoro
Aggiungi questo file al corpo della richiesta come allegato binario. Assicurati che gli header Phrase e Content-Disposition siano correttamente inseriti.
Esempio di PHP da Postman:
<?php $request = new HttpRequest(); $request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BUID%20del%20tuo%20progetto%7D/jobs'); $request->setMethod(HTTP_METH_POST); $request->setQueryData(array( 'token' => 'Il tuo token va qui' )); $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; }
Gestione degli Errori
Se c'è un problema durante la gestione di una richiesta API, la seguente JSON struttura verrà restituita. Il codice di errore sarà sempre presente; la descrizione dettagliata può essere nulla.
{ "errorCode": "InvalidArguments", "errorDescription": "L'argomento richiesto \"password\" di tipo \"string\" è mancante." }
Una risposta di errore può essere rilevata leggendo lo stato HTTP codice della risposta. Se si verifica un errore, non sarà mai impostato su 2xx. Il codice di stato è 400 richiesta non valida, 401 o 403 per problemi di autenticazione o autorizzazione.
Segnalazione di Problemi
Quando si segnala un problema a Supporto Tecnico, includere quanto segue nel rapporto:
-
Endpoint API
-
Richiesta
-
Tempo (e fuso orario)
-
Risposta
-
ID dell'azione-frase della risposta