La nostra API considera 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 viene usato anche per operazioni che non rientrano in nessuna delle quattro operazioni o che hanno input lunghi o complessi, come la ricerca nelle memorie di traduzione o per creare lavori.
-
PUT
Aggiorna la risorsa. Tieni presente che è richiesta l'intera entità con tutti i suoi campi, non solo quelli modificati; non includerla significa che deve 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 usa application/octet-stream oppure multipart/form-data.
Le entità utilizzano una struttura piatta quando possibile per mantenere buoni tempi di risposta. Invece di includere intere (entità) subordinate nelle risposte, vengono inclusi riferimenti che contengono l'ID, UID e alcuni altri attributi. Ci si aspetta che siano presenti oggetti IDReference o UidReferenc per riferirsi a entità correlate.
Tutti gli elenchi di risposta sono paginati. Usa 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. Generatori di codice Swagger sono consigliati 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"
},
"client": null,
"note": "non necessario da 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 usare in TM"
}
Risposta
201
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "J",
"lastName": "Jan",
"role": "ADMIN",
"email": "jan.j@phrase.com"
},
"client": null,
"nota": "non necessario da usare in TM",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
"es",
"it"
],
"sottodominio": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"dominio": null,
"name": "Il mio nuovo TM"
}
Aggiungere 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 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 segnali un problema a Supporto tecnico, includi quanto segue nel rapporto:
-
Endpoint API
-
Richiesta
-
Tempo (e fuso orario)
-
Risposta
-
Phrase-Action-ID della risposta