- O tamanho máximo das requisições http é 50Mb
- O tamanho máximo das respostas às requisições http é 100Mb
| Versão | Descrição |
|---|---|
| 20220704.1 | Primeira versão pública |
| 20220719.1 | Documentação sobre o header X-Oystr-TraceId |
| 20220919.1 | Documentação a reexecução de ítens usando force e retry |
| 20230104.1 | Documentando o tamanho máximo da requisição |
| 20230425.1 | Removendo documentação sobre a execução direta. Remoção do modo legacy |
| 20230508.1 | Alterando documentação de markdown/pdf para html |
| Método | Path | Retorno | Descrição |
|---|---|---|---|
| POST | /execute/single | 202 | Inicia a execução de um ítem. Retona o id para consulta futura |
| 5XX ou 4XX | Falha ao iniciar a execução do ítem. Nestes casos é necessário utilizar (manualmente via suporte) o header X-Oystr-TraceId retornado para verificar se o ítem foi recebido pela API e está em execução ou não. | ||
| GET | /execute/single/[bot-id]/[id] | 404 | id inválido ou ítem rejeitado. Nunca haverá uma resposta para este item |
| 202 | Resposta indisponível, aguarde | ||
| 200 | Resposta disponível |
{
"dry" : false,
"bot" : "",
"version" : "",
"cid" : "",
"timeout" : "",
"deadline" : "",
"credentials" : { "username": "", "password": "", ... },
"data" : {},
"files" : [{
"bound" : true,
"property" : "",
"description" : "",
"name" : "",
"data" : ""
}]
}
| Campo | Obrigatório | Formato | Default | Descrição |
|---|---|---|---|---|
| dry | não | Boolean | false | Indica se é uma execução de teste |
| bot | sim | String | Id do robô | |
| version | sim | String | Versão do robô | |
| cid | não | String | Identificador único da requisição¹ | |
| force | não | Boolean | Indica se um ítem único, discrimidado pelo `cid` deve ser reexecutado ou não | |
| timeout | não | Duration | 5 minutos | Tempo máximo aguardando o retorno de um ítem desde o início da execução². Exemplo: 30s |
| deadline | não | ZonedDateTime | Data máxima para o início da execução do ítem³ no formato ISO 8601. Exemplo: 2022-01-01T00:00:00.0-03:00 | |
| credentials | Ver robô | Json | Credenciais a serem usadas na requisição | |
| data | sim | Json | Dados passados diretamente para o robô | |
| files | Ver robô | Json | Arquivos passados para o robô |
{
"account" : 0,
"user" : 0,
"bot" : "",
"version" : "",
"cid" : "",
"request" : "",
"started" : "",
"ended" : "",
"taskTime" : "",
"timeout" : "",
"finishedAs" : "",
"retry" : "",
"dry" : false,
"result" : {},
"node" : "",
"worker" : "",
"evt" : "",
"origin" : "",
"context" : "",
"wrapper" : ""
}
| Campo | Uso | Formato | Descrição |
| account | Público | Long | Conta que realizou a requisição |
| user | Público | Long | Usuário que realizou a requisição |
| bot | Público | String | ID do robô |
| version | Público | String | Versão do robô |
| cid | Público | String | Id de integração ([mais detalhes](#markdown-header-requisicoes-duplicadas)) |
| request | Público | String | Id da requisição |
| started | Público | ZonedDateTime | Data de início da execução do ítem no formato ISO-8601 |
| ended | Público | ZonedDateTime | Data de término da execução do ítem no formato ISO-8601 |
| taskTime | Público | Duration | Tempo de execução do ítem |
| timeout | Público | Duration | Timeout efetivamente usado |
| retry | Público | Enum | Indica se possível re-executar o ítem. |
| dry | Público | Boolean | Indica se é uma execução de teste |
| finishedAs | Público | Enum | Tipo de resultado (veja os tipos na tabela abaixo) |
| result | Público | Json | Payload com o resultado |
| node | Interno | String | BS que executou o ítem |
| worker | Interno | String | Worker que executou o ítem |
| evt | Interno | String | Tipo do evento |
| origin | Interno | String | Nó que emitiu o evento |
| context | Interno | String | Nome do diretório com o context |
| wrapper | Interno | String | Versão do wrapper utilizada para executar a requisição |
| Resposta | Permite Reexecução | Origem | Descrição |
|---|---|---|---|
| Response | Bot | Resposta válida | |
| NotAllowed | Bot | Não é permitida a execução do ítem | |
| NotFound | Bot | Ítem não encontrado | |
| NotConsistent | Bot | Dados inconsistentes | |
| NotAvailable | Bot | Ítem não disponível | |
| ProxyError | Sim | Bot | Erro de proxy |
| CaptchaError | Sim | Bot | Erro de captcha |
| Forbidden | Bot | Execução do íten não é permitida | |
| BotError | Bot | Erro no robô | |
| Other | Não | Bot | Outros |
| RequestHasViolations | Não | Infra | Pedido contém informações inválidas. O ítem não foi executado |
| NotAndApiRequest | Não | Infra | Formato inválido requisição. O ítem não foi executado |
| NotAccepted | Não | Infra | Execução do ítem não foi aceita. O ítem pode ou não ter sido executado |
| Timeout | Não | Infra | Timeout durante a execução do ítem. O ítem pode ou não ter sido executado |
| Overdue | Não | Infra | Execução do ítem ocorreria após o `deadline`. Ítem não foi executado |
| Duplicate | Não | Infra | Ítem duplicado baseado no cid. Ítem não foi executado |
| UnexpectedError | Não | Infra | Erro inesperado. O ítem pode ou não ter sido executado |
| Unknown | Não | Infra | Desconhecido. O ítem pode ou não ter sido executado |
A Oystr não testa os dados enviados para a execução com a exceção dos atributos cid e force.
Caso o cid esteja presente na requisição, a Oystr fará a verificação se este cid foi executado nos últimos 15 dias para esta conta e robô.
Caso o cid seja "duplicado", o ítem será executado apenas se o parâmetro force estiver presente com o valor true, caso contrário a resposta do ítem será do tipo Duplicate.
A Oystr emprega uma estratégia estatística para verifica ser o ítem já foi executado. Esta estratégia permite falsos positivos, ou seja:
Um cid, se presente, deve ter entre 1 e 50 carateres alphanuméricos ou '-' de acordo com a seguinte expressão regular: [0-9a-zA-Z\\-]50.
Caso o cid seja inválido o ítem não será executado, a requisição será ignorada e ficará sem resposta, retornando 404 em consultas futuras.
{ "hash" : "HASH_DA_CREDENCIAL" }
A documentação da api do vault está disponível aqui.