La nostra API vede le entità dell'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 modificare la risorsa
-
POST
Crea una risorsa. POST viene anche usato per operazioni che non rientrano in nessuna delle quattro operazioni o che hanno un input lungo o complesso, come la ricerca nelle memorie di traduzione o la creazione di lavori.
-
PUT
Aggiorna la risorsa. Si prega di notare che l'intera entità è richiesta con tutti i suoi campi, non solo quelli modificati; non includerla significa che dovrebbe essere impostata su null.
-
ELIMINARE
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 viene usato application/octet-stream o multipart/form-data.
Le entità usano una struttura piatta quando possibile per mantenere buoni tempi di risposta. Invece di includere intere (entità) subordinate nelle risposte, sono contenuti riferimenti che includono l'ID, l'UID e alcuni altri attributi. Sono attesi oggetti IDReference o UidReference per fare riferimento alle entità correlate.
Tutti gli elenchi di risposta sono impaginati. Usare i parametri pageNumber e pageSize per recuperare i dati richiesti. La dimensione massima della pagina è 50.
Documentazione
OpenAPI 3.0 è usato per la Documentazione API. I generatori di codice Swagger sono raccomandati per lo sviluppo del cliente.
Esempi API
Ottenere 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,
"note": "non necessario usare nella 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,
"name": "My new TM"
}
],
"numberOfElements": 1,
"totalElements": 1,
"pageSize": 50,
"totalPages": 1
}
Creare una nuova memoria di traduzione
POST
/web/api2/v1/transMemories
{{
"name": "My new TM",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"ID": "1"
},
"note": "non necessario usare nella TM"
}
Risposta
201
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "J",
"lastName": "Jan",
"role": "ADMIN",
"email": "jan.j@phrase.com"
},
"cliente": null,
"note": "non necessario usare nella 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,
"name": "My new TM"
}
Aggiunta di file durante la creazione di un lavoro
Aggiungere questo file al corpo della richiesta come allegato binario. Assicurarsi che Phrase e le intestazioni Content-Disposition 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\\\\\"}}'
));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
Gestione degli errori
In caso di problemi 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": "InvalidArguments",
"errorDescription": "Argomento obbligatorio \"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 verrà mai impostato su 2xx. Lo stato del codice è 400 bad request, 401 o 403 per problemi di autenticazione o autorizzazione.
Segnalazione di problemi
Quando si segnala un problema al Supporto tecnico, includere quanto segue nel rapporto:
-
Endpoint API
-
Richiesta
-
Ora (e fuso orario)
-
Risposta
-
Phrase-Azione-ID della risposta