Criar links à mão está muito bem até deixar de estar. No momento em que cada encomenda precisa de um link de rastreamento, cada utilizador de um link de referência ou cada anúncio de um QR code, passa a precisar da mesma coisa feita por código. É para isso que serve uma API de encurtador de URL — e a superfície é pequena o suficiente para a ligar no tempo de um café.
O que dá para automatizar
- Links por encomenda ou por utilizador, gerados no momento exato em que são precisos.
- Links de campanha em massa — um por canal, criados a partir de uma folha de cálculo num ciclo, em vez de à mão.
- QR codes na hora para bilhetes, faturas, etiquetas e guias de remessa.
- Dados de cliques trazidos de volta para o seu próprio painel, para que os números vivam onde a sua equipa já olha.
Se ainda não tem a certeza de que precisa da API, o teste honesto é volume e repetição: se está a fazer a mesma coisa num browser mais do que umas quantas vezes por semana, automatize.
Autenticar
Vá buscar a chave à página da sua conta e envie-a num cabeçalho X-Api-Key em todos os pedidos. Duas regras que não se negoceiam: mantenha a chave do lado do servidor — tudo o que está em JavaScript de front-end é público, e uma chave que vaza deixa estranhos criar links em seu nome — e rode-a imediatamente se ela alguma vez for parar a um repositório ou a um log.
Criar um link
Um POST para /api/getLink.json com o destino. Pode passar um alias, um modo, uma validade e uma palavra-passe na mesma chamada:
curl -X POST https://urlik.xyz/api/getLink.json -H "X-Api-Key: YOUR_KEY" -d "url=https://example.com/very/long/path" -d "alias=spring-sale"
A resposta é JSON com o URL curto, o URL do QR e o URL das estatísticas. Os links criados com uma chave ficam ligados à sua conta, por isso aparecem no painel e podem ser editados mais tarde.
Um pormenor que convém saber antes de construir: um alias é único em todo o serviço. Se spring-sale estiver ocupado, recebe um erro e não uma alternativa escolhida em silêncio — por isso trate esse caso ou dê um espaço de nomes aos seus aliases (acme-spring-sale).
Gerar um QR code
GET /api/qr.json recebe os dados mais os opcionais format, fg, bg, ecc e size, e devolve o QR. Aponte-o a um link curto em vez de a um URL longo em bruto — fica com um código mais limpo e mais robusto, e o destino continua editável depois. É o padrão do QR code dinâmico, feito a partir do seu backend.
Ler as estatísticas
GET /api/stats.json devolve totais, uma série temporal, referenciadores, dispositivos e países de um link — os mesmos números da página de estatísticas, numa forma que pode meter no seu painel de administração.
Consulte-o com um agendamento, não a cada carregamento de página. As estatísticas de cliques não são um sistema de registo em tempo real, e martelar o endpoint para redesenhar um gráfico que ninguém está a ver é a maneira certa de dar de caras com o limitador de pedidos.
Construa de forma a não partir às 3 da manhã
Os endpoints são simples; as integrações que rebentam são as que partem do princípio de que nunca corre nada mal. Quatro hábitos que se pagam a si próprios:
- Verifique sempre a resposta. Todas as chamadas devolvem um estado — leia-o. O bug clássico é assumir sucesso e guardar um corpo de erro como se fosse um link curto, e só descobrir isso numa fatura impressa.
- Nunca prenda o utilizador por causa de um link. Se o encurtamento acontece dentro do checkout, uma API lenta passa a ser um checkout lento. Faça-o num trabalho em segundo plano, ou caia para o URL longo e tente outra vez mais tarde. O URL longo funciona sempre; é essa a sua rede de segurança.
- Guarde em cache o que não muda. O mesmo destino não precisa de ser encurtado duas vezes — guarde o URL curto junto ao registo de origem e reutilize-o. Mais barato, mais rápido, e o painel continua legível.
- Recue em caso de erro. Repita com atrasos crescentes, e não num ciclo apertado. Um limite de pedidos respondido com uma tempestade de repetições continua a ser um limite de pedidos.
Onde é que a API pára
Dois limites honestos. Os limites de pedidos existem, e generoso não é infinito — os trabalhos em lote devem ser cadenciados, não disparados todos ao mesmo tempo. E a API cria links; não decide o que deve estar dentro deles. Etiquete os seus links com parâmetros UTM no momento da criação (veja o guia de UTM) ou vai automatizar a produção de milhares de links que não consegue distinguir uns dos outros nos analytics — o que é uma posição pior do que fazer tudo à mão.
Em resumo
Um endpoint para criar, um para o QR, um para as estatísticas e um cabeçalho para autenticar. Mantenha a chave do lado do servidor, verifique todas as respostas, faça o trabalho fora do caminho crítico, guarde em cache o que se repete e etiquete à medida que cria. A lista completa de parâmetros, os códigos de erro e os exemplos estão na documentação da API; se quiser primeiro o enquadramento conceptual, comece por o que é um encurtador de URL.