Notas de quickstart
Por que você não deve chamar a API de odds do navegador
Um app de navegador não consegue esconder uma chave de API. Todo visitante consegue lê-la, e uma chave vazada entrega seus limites e seus streams a estranhos.
A pergunta chega cedo em todo projeto web: a página pode buscar odds da API diretamente? A resposta é não, e a razão cabe numa frase. Tudo que o seu navegador envia, todo visitante consegue ler, incluindo a sua chave. A correção é um pequeno servidor entre a página e a API.
O navegador não guarda segredos
A API autentica com a sua chave no cabeçalho x-portal-apikey, ou como parâmetro de consulta nos endpoints de streaming, como os quickstarts do site mostram. De qualquer jeito, a chave viaja com a requisição. Num navegador, a requisição está ali nas ferramentas de desenvolvedor de qualquer um que abrir a sua página: o cabeçalho, a URL, a chave.
Uma chave solta no mundo não é um vazamento menor. É a sua cota de polling gasta pelo loop de outra pessoa, o seu stream de alertas mantido aberto de uma máquina que você não conhece, e nenhum jeito de distinguir o tráfego deles do seu nos seus logs.
O que acontece quando a chave vaza
O dano é silencioso. Seus polls começam a bater no teto porque o script de um estranho gasta a mesma cota. Seu stream de alertas fecha porque uma segunda conexão com a sua chave expulsa a sua. Nada na API se comporta mal; ela está fazendo exatamente o que uma chave válida pede, para outra pessoa.
Rotacionar a chave só ajuda depois que o vazamento para, e ele não para até a chave sair da página.
O formato que funciona: seu servidor no meio
O padrão que todo quickstart deste site já usa é a resposta. O quickstart de Python lê a chave de uma variável de ambiente na sua máquina, e ela nunca toca num navegador. Para um app web, a mesma fronteira vale: sua página chama o seu próprio backend, seu backend chama a API com a chave, e a chave nunca sai do servidor.
Esse backend pode ter vinte linhas: um endpoint que busca o board, corta para o que a sua página precisa, e responde a partir da sua própria cópia com sua própria nota de frescor. O quickstart de curl basta para prototipá-lo, porque o backend são as mesmas duas chamadas, no lado do servidor.
A exceção que não é uma
Uma demo pública com uma chave descartável num nível gratuito ainda é um vazamento; só vaza uma cota menor. Se você não colaria a chave num chat público, não cole numa página pública. A regra é a mesma em qualquer tamanho de projeto.
Servidor segura a chave, página não segura nada. Essa única fronteira é todo o modelo de segurança de que esta API precisa.