Pular para o conteúdo principal

Java

Não testado

Ninguém rodou Java contra o Botaí. O que foi provado: o servidor HTTP com um cliente Python só da biblioteca padrão, e a CLI e o servidor devolvendo o mesmo envelope JSON.

Em Java, a pessoa chega como JSON: pelo servidor HTTP ou pela saída da CLI. Os dois caminhos devolvem o mesmo envelope, {formato, motor, semente, hoje, pessoa}. O JDK não traz leitor de JSON: leia o envelope com a biblioteca que o seu projeto já usa. Os campos estão em A pessoa.

Pelo servidor HTTP​

Com o servidor no ar (veja Subir o servidor ou a imagem Docker), o java.net.http.HttpClient basta:

PessoaDoBotai.java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class PessoaDoBotai {
public static void main(String[] args) throws Exception {
HttpClient cliente = HttpClient.newHttpClient();
HttpRequest pedido = HttpRequest.newBuilder(
URI.create("http://127.0.0.1:8790/pessoa?semente=cadastro-1&hoje=2026-10-05"))
.GET()
.build();
HttpResponse<String> resposta = cliente.send(pedido, HttpResponse.BodyHandlers.ofString());
if (resposta.statusCode() != 200) {
// o corpo é {"erro": "..."}, com o parâmetro errado
throw new IllegalStateException(resposta.statusCode() + ": " + resposta.body());
}
String envelope = resposta.body();
System.out.println(envelope);
}
}

As rotas, os parâmetros e os erros estão em API HTTP. Para um lote, use /pessoas com n de 1 a 10 000; com formato=csv e campos, a resposta vem em CSV, sem precisar de leitor de JSON.

Pela CLI​

Com o ProcessBuilder, a CLI escreve o envelope no stdout e as mensagens no stderr:

Process processo = new ProcessBuilder(
"npx", "--yes", "@pilutech/botai-core@0.4.1", "pessoa",
"--semente", "cadastro-1", "--hoje", "2026-10-05")
.redirectError(ProcessBuilder.Redirect.INHERIT)
.start();
String envelope = new String(processo.getInputStream().readAllBytes(), java.nio.charset.StandardCharsets.UTF_8);
int codigo = processo.waitFor();
if (codigo != 0) {
throw new IllegalStateException("botai saiu com " + codigo);
}

Fixe a versão no npx. Com o binário instalado, troque "npx", "--yes", "@pilutech/botai-core@0.4.1" por "botai". Os códigos de saída estão em Códigos de saída.

Selenium em Java​

Para preencher um formulário com o Selenium, a pessoa vem do servidor ou da CLI e o motor vai como texto para a página. Veja Selenium.

Ruby e PHP​

O caminho é o mesmo: HTTP ou a CLI em subprocess. Também não foi testado.