Nossa API vê entidades de aplicação (projetos, trabalhos, configurações) como recursos que podem ser recuperados, criados, modificados e excluídos.
Cada método HTTP representa uma ação:
-
GET
Recupera um recurso, nunca alterando o recurso
-
POST
Cria um recurso. POST também é usado para operações que não se encaixam em nenhuma das quatro operações ou que têm entrada longa ou complexa — como pesquisar memórias de tradução ou criar trabalhos.
-
PUT
Atualiza o recurso. Por favor, note que a entidade inteira é necessária, com todos os seus campos, e não apenas aqueles alterados; omiti-los significa que eles devem ser definidos como nulos.
-
DELETE
Exclui o recurso.
Importante
Os dados de entrada e saída geralmente estão no formato JSON, codificados em UTF-8. Para um arquivo como tipo de conteúdo do corpo da solicitação application/octet-stream ou multipart/form-data é usado.
As entidades usam uma estrutura plana quando possível para manter bons tempos de resposta. Em vez de incluir objetos secundários inteiros nas respostas, são incluídas referências que contêm o ID, UID e alguns outros atributos. Ou IDReference ou UidReferenc objetos para se referir a entidades relacionadas são esperados.
Todas as listas de resposta são paginadas. Use os parâmetros pageNumber e pageSize para recuperar os dados solicitados. O tamanho máximo da página é 50.
Documentação
OpenAPI 3.0 é usado para documentação de API. Geradores de código Swagger são recomendados para o desenvolvimento do cliente.
Exemplos de API
Obter a lista de todas as memórias de tradução
GET
/web/api2/v1/transMemories
Resposta
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": "não é necessário usar na memória de tradução",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
"es",
"it"
],
"subDomain": null,
"businessUnit": {
"id": "1",
"name": "First BU"
},
"sourceLang": "en",
"domínio": null,
"name": "Minha nova memória de tradução"
}
],
"numberOfElements": 1,
"totalElements": 1,
"pageSize": 50,
"totalPages": 1
}
Criar uma nova memória de tradução
POST
/web/api2/v1/transMemories
{{
"name": "Minha nova memória de tradução",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"nota": "não é necessário usar na memória de tradução"
}
Resposta
201
{
"internalId": 1,
"createdBy": {
"userName": "admin",
"id": "3",
"firstName": "J",
"lastName": "Jan",
"role": "ADMIN",
"email": "jan.j@phrase.com"
},
"cliente": null,
"nota": "não é necessário usar na memória de tradução",
"dateCreated": "2018-01-09T14:07:46+0000",
"id": "1",
"targetLangs": [
"es",
"it"
],
"subtema": null,
"businessUnit": {
"id": "1",
"name": "Primeiro BU"
},
"sourceLang": "en",
"domínio": null,
"name": "Minha nova memória de tradução"
}
Adicionando arquivos ao criar um trabalho
Adicione este arquivo ao corpo da solicitação como um anexo binário. Certifique-se de que os cabeçalhos Phrase e Content-Disposition estão corretamente inseridos.
Exemplo de PHP do Postman:
<?php
$request = new HttpRequest();
$request->setUrl('https://cloud.memsource.com/web/api2/v1/projects/%7BUID%20do%20seu%20projeto%7D/jobs');
$request->setMethod(HTTP_METH_POST);
$request->setQueryData(array(
'token' => 'Seu token vai aqui'
));
$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;
}
Tratamento de Erros
Se houver um problema ao lidar com uma solicitação de API, a seguinte JSON estrutura será retornada. O código de erro estará sempre presente; a descrição detalhada pode ser nula.
{ "errorCode": "InvalidArguments",
"errorDescription": "O argumento obrigatório \"password\" do tipo \"string\" está ausente."
}
Uma resposta de erro pode ser detectada lendo o status HTTP código da resposta. Se um erro ocorrer, ele nunca será definido como 2xx. O código de estado é 400 bad request, 401 ou 403 para problemas de autenticação ou autorização.
Relatando Problemas
Ao relatar problemas para Suporte Técnico, inclua o seguinte no relatório:
-
Endpoint da API
-
Solicitação
-
Hora (e fuso horário)
-
Resposta
-
ID da Phrase-Action da resposta