Receita: gerar QR Codes (etiquetas)
Montar a lista de etiquetas de QR Code de um site — equipamentos, áreas ou unidades — com GET /v1/etiquetas, paginar o resultado e transformar cada item em uma etiqueta imprimível.
Pré-requisitos
- Token JWT válido (ver Autenticação).
- Base URL produção:
https://lighthousev2.lkp.app.br· sandbox:https://lighthouse.lkp.dev.br. - Familiaridade com o guia de Etiquetas (matriz de campos por tipo).
Passo 1 — Escolha o Tipo
Obrigatório. Define o que a etiqueta representa e o prefixo da URL do QR:
Tipo | Etiqueta de… | Prefixo da URL |
|---|---|---|
equipamento | Equipamento | E_ |
area | Área | A_ |
unidade | Unidade | S_ |
Passo 2 — Primeira página (descobre o total)
totalCount só vem preenchido na primeira página (PageIndex=1). Use-o para saber quantas páginas puxar.
curl "https://lighthousev2.lkp.app.br/v1/etiquetas?Tipo=equipamento&UnidadeId=123&PageIndex=1&PageSize=500" \
-H "Authorization: Bearer SEU_TOKEN"
Resposta:
{
"items": [
{
"id": 45021,
"url": "https://qr.lkp.app.br/E_45021",
"nomeEquipamento": "Bomba de recalque 02",
"tagEquipamento": "BR-02",
"nomeArea": "Casa de bombas",
"nomeUnidade": "Edifício Sede",
"identificacaoAmbiente": "Subsolo 1",
"nomeGrupoArea": "Hidráulica"
}
],
"pageIndex": 1,
"pageSize": 500,
"totalCount": 1340
}
Passo 3 — Pagine o restante
PageSize máximo é 500 (acima → 400). Com totalCount=1340 e PageSize=500 são 3 páginas. Da página 2 em diante totalCount volta nulo — pare quando items vier vazio ou ao cobrir o total lido na página 1.
for page in 2 3; do
curl "https://lighthousev2.lkp.app.br/v1/etiquetas?Tipo=equipamento&UnidadeId=123&PageIndex=$page&PageSize=500" \
-H "Authorization: Bearer SEU_TOKEN"
done
Passo 4 — Gere a etiqueta
Para cada item, o campo url é exatamente o que o QR Code deve codificar. Gere o QR a partir dessa string e componha a etiqueta com os textos do item. Quais campos vêm preenchidos depende do Tipo — ver a matriz de campos por tipo.
Filtrando o conjunto
Todos opcionais (exceto Tipo) e combináveis. Os mais usados:
UnidadeId[],GrupoUnidadeId[],SubGrupoUnidadeId[]— recorte por unidade.AreaId[](id ou GID),GrupoAreaId[],SubGrupoAreaId[]— por área.EquipamentoId[],GrupoEquipamentoId[](id ou GID),TipoEquipamentoId,SistemaId,PlanoAtividadeId[]— por equipamento.Search— busca textual.
EmpresaId, UsuarioId e TipoUsuario são resolvidos pelo seu token — mandar na query não tem efeito.
Erros comuns
| Código | Quando |
|---|---|
400 | Tipo ausente/inválido, ou PageSize > 500. |
401 | Token ausente ou expirado. |
403 | Sem acesso às unidades/áreas filtradas. |
Resumo do fluxo
escolher Tipo → GET página 1 (lê totalCount) → paginar até cobrir o total
→ para cada item: url = conteúdo do QR + textos = etiqueta
Dicas para IA / integração
Tipoé a única entrada obrigatória; sem ela,400.- Pagine sempre pelo
totalCountda página 1 — as demais páginas não o repetem. PageSizeteto rígido de 500.- O
urljá vem pronto; não monte a string do QR à mão a partir doid.