Pular para o conteúdo principal
O vsql_rest serve as suas tabelas por HTTP de dentro do processo do banco de dados. Um cliente lê linhas com uma URL em vez de uma conexão, filtra-as com parâmetros de consulta e chama funções armazenadas em /rpc/. Não há aplicação para escrever nem segundo processo para executar.
Esta extensão usa uma capability Preview, então vsql_allow_preview_extensions precisa estar ON. Inicie o servidor com --vsql_allow_preview_extensions=ON ou execute SET PERSIST vsql_allow_preview_extensions = ON. Caso contrário, o INSTALL EXTENSION é recusado.

Instalar

O vsql_rest.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:
Confirme que ele está lá:
Para compilá-lo você mesmo, siga as instruções de compilação no repositório.

O que ela adiciona

Ela não adiciona funções SQL. Você a configura com SET GLOBAL, e toda requisição que ela responde chega por HTTP.

Exemplo

Crie a tabela primeiro, porque o listener armazena em cache o layout do banco de dados quando inicia e o mantém por schema_ttl segundos:
Em seguida, nomeie o banco de dados e a tabela e ligue o listener:
Leia a tabela por HTTP:
Filtre-a com um parâmetro de consulta:
Desligar a configuração fecha a porta:
Os padrões deixam a autenticação desativada, todas as tabelas servidas e todos os métodos HTTP suportados (GET, POST, PATCH, DELETE) permitidos, e o listener se vincula a todas as interfaces desde o momento em que inicia. Qualquer coisa que consiga alcançar o host pode então ler e gravar todas as tabelas do schema. Defina allowed_tables, table_methods e require_auth, configure um segredo ou uma chave pública de JWT e coloque a porta atrás de um firewall antes de ligar o listener. Não há configuração de endereço de vinculação.
Uma configuração gravada com SET PERSIST sobrevive a uma reinicialização, mas UNINSTALL EXTENSION a apaga. Após desinstalar e reinstalar, toda configuração volta ao seu padrão, e nenhuma reinicialização traz o valor antigo de volta.
Toda configuração de string é lida de volta por meio do servidor, que retorna no máximo 1022 bytes. Um schema, allowed_tables, allowed_routines, table_methods, jwt_secret ou jwt_public_key mais longo faz toda requisição falhar com 500; um ssl_cert ou ssl_key mais longo impede o listener de iniciar.

Veja também