La nostra API considera le entità applicazione (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 viene 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. Nota che l'intera entità è obbligatoria con tutti i suoi campi, non solo quelli modificati; non includerla significa che dovrebbe essere impostata su null.
-
DELETE
Elimina la risorsa.
Importante
I dati di input e output sono solitamente in formato JSON, codificato UTF-8. Per un file come tipo di contenuto corpo della richiesta viene usato application/octet-stream o multipart/form-data.
Le entità usano una struttura piatta ove possibile per mantenere buoni tempi di risposta. Invece di includere interi oggetti (entità) subordinate nelle risposte, vengono contenuti riferimenti che contengono l'ID, l'UID e pochi altri attributi. Sono attesi oggetti IDReference o UidReference per fare riferimento a entità correlate.
Tutti gli elenchi di risposte sono impaginati. Usare i parametri pageNumber e pageSize per recuperare i dati richiesti. La dimensione massima della pagina è 50.
Documentazione
OpenAPI 3.0 viene utilizzato per la documentazione API. I generatori di codice sono consigliati per lo sviluppo cliente.
File di documentazione grezzi:
Esempi API
Ottieni l'elenco di tutte le memorie di traduzione
GET
/web/api2/v1/transMemories
Risposta
200
{ "pageNumber": 0, "contenuto": [ { "internalId": 1, "createdBy": { "userName": "amministratore", "id": "3", "firstName": "Jan", "lastName": "Janocko", "ruolo": "ADMIN", "email": "jan.janocko@phrase.com" }, "cliente": nullo, "note": "non necessario usare nella TM", "dateCreated": "2018-01-09T14:07:46+0000", "id": "1", "targetLangs": [ "es", "it" ], "sottodominio": nullo, "businessUnit": { "id": "1", "nome": "Prima BU" }, "sourceLang": "en", "dominio": nullo, "nome": "La mia nuova TM" } ], "numberOfElements": 1, "totalElements": 1, "pageSize": 50, "totalPages": 1 }
Crea nuova memoria di traduzione
POST
/web/api2/v1/transMemories
{{ "nome": "La mia nuova TM", "sourceLang": "en", "targetLangs": [ "es", "it-IT" ], "businessUnit": { "id": "1" }, "note": "non necessario usare in TM" }
Risposta
201
{ "internalId": 1, "createdBy": { "userName": "amministratore", "id": "3", "firstName": "J", "lastName": "Jan", "ruolo": "ADMIN", "e-mail": "jan.j@phrase.com" }, "cliente": nullo, "note": "non necessario usare nella TM", "dateCreated": "2018-01-09T14:07:46+0000", "id": "1", "targetLangs": [ "es", "it" ], "sottodominio": nullo, "businessUnit": { "id": "1", "nome": "Prima BU" }, "sourceLang": "en", "dominio": nullo, "nome": "La mia nuova TM" }
Aggiunta di file durante la creazione di un lavoro
Aggiungi questo file al corpo della richiesta come allegato binario. Assicurati che Phrase e le intestazioni contenutoDisposition siano inserite correttamente.
Esempio PHP da 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' => '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\"}}' )); provare { $response = $request->send(); echo $response->getBody(); } catch (HttpException $ex) { echo $ex; }
Gestione degli errori
Se si verifica un problema durante la gestione di una richiesta API, verrà restituita la seguente struttura JSON. Il codice di errore sarà sempre presente; la descrizione dettagliata potrebbe essere nulla.
{ "errorCode": "Argomenti non validi", "errorDescription": "Manca l'argomento richiesto \"password\" di tipo \"stringa\". }
La risposta a un errore può essere rilevata leggendo il codice dello stato HTTP della risposta. Se si verifica un errore, non verrà mai impostato su 2xx. Il codice di stato è 400 richiesta non riuscita, 401 o 403 per problemi di autenticazione o autorizzazione.
Segnalazione di problemi
Quando si segnala un problema all'assistenza tecnica, includere quanto segue nella segnalazione:
-
Endpoint API
-
Richiesta
-
Ora (e fuso orario)
-
Risposta
-
Phrase-Action-ID della risposta