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 includerla significa che dovrebbe essere impostata 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 si utilizza application/octet-stream o multipart/form-data.
Le entità utilizzano una struttura piatta quando possibile per mantenere buoni tempi di risposta. Invece di includere interi oggetti subordinati nelle risposte, vengono contenute referenze che contengono l'ID, UID e alcuni altri attributi. Ci si aspetta oggetti IDReference o UidReference 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 cliente.
Esempi API
Ottieni l'elenco di tutte le memorie di traduzione
GET
/web/api2/v1/transMemories
Risposta
200
{
"pageNumber": 0,
"content": [
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "Jan",
"lastName": "Janocko",
"role": "ADMIN",
"email": "jan.janocko@phrase.com"
},
"cliente": null,
"nota": "non necessario da usare in TM",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
"es",
"it"
],
"subDomain": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"dominio": null,
"nome": "La mia nuova TM"
}
],
"numberOfElements": 1,
"totalElements": 1,
"pageSize": 50,
"totalPages": 1
}
Crea una nuova memoria di traduzione
POST
/web/api2/v1/transMemories
{{
"nome": "La mia nuova TM",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"nota": "non necessario da usare in TM"
}
Risposta
201
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "J",
"lastName": "Jan",
"role": "ADMIN",
"email": "jan.j@phrase.com"
},
"cliente": null,
"nota": "non necessario da usare in TM",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
"es",
"it"
],
"subDomain": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"dominio": null,
"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 l'intestazione Phrase e l'intestazione Content-Disposition siano inserite correttamente.
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 potrebbe essere nulla.
{ "errorCode": "InvalidArguments",
"errorDescription": "L'argomento richiesto \"password\" di tipo \"stringa\" è 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 Problemi
Quando si segnala un problema a Supporto Tecnico, includere quanto segue nel rapporto:
-
Endpoint API
-
Richiesta
-
Tempo (e fuso orario)
-
Risposta
-
ID-Fase-Azione della risposta