vsql_http faz requisições HTTP de dentro de uma consulta. Um trigger pode
chamar um webhook, um SELECT pode enriquecer linhas a partir de uma API, e um
evento agendado pode enviar um resumo para algum lugar, sem nenhuma camada de
aplicação no meio. Ele é construído sobre a libcurl e retorna toda resposta
como JSON.
Instalar
Ovsql_http.veb já está no diretório lib/veb/ do servidor se você instalou
o VillageSQL com o script de instalação, a imagem Docker ou um tarball de
release. Instale-o no servidor com uma única instrução:
O que ela adiciona
Toda função de requisição retorna um objeto JSON com quatro campos:status,
content_type, headers e content. Uma requisição que não consegue ser
concluída, como uma conexão recusada ou um timeout, retorna NULL e gera um
aviso com a mensagem de erro do curl:
O argumento
method do http_request reconhece GET, HEAD, POST, PUT, DELETE,
CONNECT, OPTIONS, TRACE e PATCH sem distinguir maiúsculas de minúsculas e os
envia em maiúsculas; qualquer outro método é enviado exatamente como foi dado.
Exemplo
Busque uma URL e leia dois campos da resposta:No VillageSQL 0.0.6 e anteriores, a resposta carrega o conjunto de caracteres
binary. Uma função JSON ou uma coluna
JSON a rejeita, então o exemplo acima
sem o seu CONVERT falha ali com
ERROR 3144 (22032): Cannot create a JSON value from a string with CHARACTER SET 'binary'. Dentro de JSON_OBJECT() ou JSON_ARRAY() ela é aceita, mas
codificada em base64. Mantenha o CONVERT(... USING utf8mb4) nessas
versões; ele não é necessário no 0.0.7 e posteriores, e é inofensivo ali.Veja também
- Fazendo requisições HTTP a partir do MySQL — timeouts, tratamento de erros e leitura da resposta
- Enviando webhooks a partir do MySQL — disparar uma requisição a partir de um trigger
- Enriquecendo linhas a partir de uma API REST — juntar uma consulta a um serviço externo
- Instalar extensões — como o
INSTALL EXTENSIONfunciona e onde o servidor procura um bundle - Extensões disponíveis — o catálogo completo
- villagesql/vsql-http — código-fonte, instruções de compilação e as limitações conhecidas