Autenticação
Um único esquema protege toda operação: um token bearer no cabeçalho
Authorization.
403 ao criar. As falhas respondem application/problem+json, então interprete o documento de problema em vez de ficar só na linha de status.
O token também carrega o escopo de isolamento da chamada. O Reporter o resolve a partir da própria credencial, então nenhuma operação toma um cabeçalho de escopo do seu cliente e nenhum cabeçalho amplia o que um token já permite.
URL base
A rota base é
/v1, sem nenhum segmento de produto na frente. Toda rota desta página se acrescenta a ela:
multipart/form-data, porque um template é um arquivo .tpl. A criação de um relatório é application/json. Um download transmite os bytes renderizados com o Content-Type do formato de saída e um nome de arquivo em Content-Disposition.
As operações de listagem aceitam limit e page, 10 e 1 por padrão. A maior página é o MAX_PAGINATION_LIMIT, que cada deployment define e cujo padrão é 100. Um limit acima desse teto é recusado, não reduzido.
Sua primeira chamada
1
Confirme o token e a URL base
200 com uma lista de templates prova os dois. Um 401 aponta para o token; um 404, para a URL base.2
Peça um relatório
201 com o relatório em Processing. A geração corre de forma assíncrona.3
Espere um estado terminal e baixe
Finished.X-Idempotency em toda solicitação de relatório, e no envio de um template pelo mesmo motivo. Se você repetir uma solicitação que ainda está em execução, recebe um erro em vez de um segundo relatório. Se repetir uma que já terminou, o Reporter reproduz o relatório original e marca a resposta com X-Idempotency-Replayed: true. Derive a chave do seu próprio identificador de requisição e uma nova tentativa não custa nada.
Um relatório é criado uma vez e mantido: criar, obter, listar e baixar são suas quatro operações. Quanto tempo um arquivo renderizado vive é uma política de ciclo de vida sobre o bucket de armazenamento, não uma chamada da API.
Lendo as fontes de dados
Um operador configura as fontes de dados por variáveis de ambiente, então a API sobre elas é somente leitura. Use-a para descobrir o que seus templates podem referenciar:
/v1/data-sources/{dataSourceId}.
O SDK Go
O
lerian-sdk-golang traz um pacote reporter ao lado dos outros produtos da Lerian. Ele é uma conveniência sobre as chamadas acima para o trabalho com templates e relatórios: obtém um token OAuth2 de client credentials, o renova e devolve resultados tipados e iteradores paginados.
Configure-o com a mesma URL base https://<host>/v1 que você usa com o cURL, mais o client ID, o client secret e a URL de token do seu servidor de autorização, e um timeout de requisição.
Download devolve os bytes renderizados no formato do próprio relatório. Escreva-os em disco, como acima, ou transmita-os para quem chamou.
O SDK cobre uma parte do produto, não o todo. Ele carrega criar, obter, listar e excluir templates, e criar, obter, listar e baixar relatórios. As fontes de dados, a atualização de template, os prazos, o construtor de templates, as métricas e o manifesto de streaming são chamadas REST. Misturar os dois em uma só integração é normal e esperado: o pacote onde ele encaixa, e HTTP puro em todo o resto.
Rodando o Reporter atrás do seu próprio serviço
O Reporter é um serviço que você implanta, não uma biblioteca que você linka. Para colocá-lo atrás de uma aplicação que seus clientes já usam, guarde as credenciais do seu lado e chame o Reporter de servidor para servidor. Quatro regras mantêm essa fronteira limpa. Nunca entregue um token do Reporter a um navegador. Seu serviço autentica seu usuário, decide se aquele usuário pode executar este relatório e só então faz a chamada com o próprio token. Responda de imediato com um identificador. A criação de um relatório volta em
Processing. Devolva esse identificador a quem chamou e deixe seu próprio endpoint de status expor o progresso.
Descubra o fim uma vez só. Consulte GET /v1/reports/{id} em um intervalo moderado, ou assine os eventos de relatório do Reporter e pare de consultar. Veja Eventos do Reporter.
Faça proxy do download. O endpoint de download transmite bytes para um chamador autenticado, então seu serviço os busca e os serve de novo sob a própria autenticação.
Um relatório em
Partial significa que algumas seções de dados falharam enquanto outras tiveram sucesso, e os metadados dele nomeiam as que falharam. Trate isso como um sinal sobre uma fonte de dados ou sobre um filtro, e decida no seu próprio serviço o que seus usuários devem ver.Próximos passos
API REST do Reporter
Cada operação, agrupada pelo trabalho que ela faz.
Eventos do Reporter
O contrato de eventos, e como assinar em vez de consultar.
Início rápido da API
Envie um template e gere um relatório com o cURL.
Lista de erros
Os códigos de erro do Reporter e o que os resolve.

