Nossa API vê entidades de aplicativos (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
-
POSTAR
Cria um recurso. O POST também é usado para operações que não se encaixam em nenhuma das quatro operações ou têm entrada longa ou complexa, como pesquisar memórias de tradução ou criar trabalhos.
-
PÔR
Atualiza o recurso. Observe que toda a entidade é obrigatória com todos os seus campos, não apenas os alterados; não incluí-lo significa que ele deve ser definido como nulo.
-
EXCLUIR
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 aplicativo/fluxo de octeto ou dados de várias partes / formulário é usado.
As entidades usam uma estrutura plana quando possível para manter bons tempos de resposta. Em vez de incluir objetos filho inteiros nas respostas, as referências que contêm o ID, UID e alguns outros atributos são contidas. Tampouco IDReferência ou UidReference objetos para se referir a entidades relacionadas são esperados.
Todas as listas de respostas são paginadas. Use os parâmetros número da página e Pagesize para recuperar os dados solicitados. O tamanho máximo da página é 50.
Documentação
O OpenAPI 3.0 é usado para documentação da API. Geradores de código Swagger são recomendados para o desenvolvimento do cliente.
Arquivos de documentação bruta:
Exemplos de API
Obter 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" }, "client": null, "nota": "não é necessário usar em TM", "dateCreated": "2018-01-09T14:07:46+0000", "id": "1", "targetLangs": [ "es", "it" ], "subDomain": null, "businessUnit": { "id": "1", "name": "First BU" }, "sourceLang": "en", "domain": null, "name": "Minha nova TM" } ], "numberOfElements": 1, "totalElements": 1, "pageSize": 50, "totalPages": 1 }
Criar uma nova memória de tradução
POSTAR
/web/api2/v1/transMemories
{{ "name": "Minha nova TM", "sourceLang": "en", "targetLangs": [ "es", "it-IT" ], "businessUnit": { "id": "1" }, "nota": "não é necessário usar em TM" }
Resposta
201
{ "internalId": 1, "createdBy": { "userName": "admin", "id": "3", "firstName": "J", "lastName": "Jan", "role": "ADMIN", "email": "jan.j@phrase.com" }, "client": null, "nota": "não é necessário usar em TM", "dateCreated": "2018-01-09T14:07:46+0000", "id": "1", "targetLangs": [ "es", "it" ], "subDomain": null, "businessUnit": { "id": "1", "name": "First BU" }, "sourceLang": "en", "domain": null, "name": "Minha nova TM" }
Adicionando arquivos ao criar um trabalho
Adicione esse arquivo ao corpo da solicitação como um anexo binário. Verifique se os cabeçalhos Phrase e Content-Disposition estão inseridos corretamente.
Exemplo de PHP do 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' => '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\\"}}' )); tente { $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, o 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 ocorrer um erro, ele nunca será definido como 2xx. O código de status é 400 bad request, 401 ou 403 para problemas de autenticação ou autorização.
Relatando problemas
Ao relatar o problema para Suporte técnico, inclui o seguinte no relatório:
-
Endpoint da API
-
Solicitação
-
Hora (e fuso horário)
-
Resposta
-
ID de ação de frase da resposta