API em Java 17 que expõe serviços REST para chat com IA, gestão de projetos, produtos e indexação de documentação. O código está limpo para uso público (sem credenciais, PDFs ou builds) e pronto para ser publicado no GitHub.
- Java 17, Maven
- Jersey (JAX-RS) + Jetty
- Firebase Admin / Firestore
- MongoDB driver
- OpenAI (chat e embeddings via OkHttp)
- JDK 17 e Maven instalados
- Acesso a um cluster MongoDB
- Projeto Firebase/Firestore e um
serviceAccountKey.json(Admin SDK) - Chave de API OpenAI (ou compatível) para chat/embeddings
- Copie o exemplo de variáveis:
cp .env.example .env
- Preencha o
.envcom suas credenciais. Campos principais:DB_HOST/DB_PORT/DB_NAME/DB_USER/DB_PASSFIRESTORE_PROJECT_ID,FIRESTORE_DATABASE_ID,GOOGLE_CLOUD_PROJECTAI_API_KEY,AI_MODEL,AI_ENDPOINT,EMBEDDING_MODEL,EMBEDDING_ENDPOINT- (Opcional)
API_PROTHES_MERC_URL/USER/PASSWORD,DOC_STORAGE_DIR
- Coloque o
serviceAccountKey.jsonemsrc/main/resources/(arquivo está no.gitignorepara evitar vazamentos). - Documentação indexada: os PDFs e manifests foram removidos. Para habilitar as rotas de documentação, adicione seus arquivos em
src/main/resources/documentation/(ex.:manifest.json,pdfs/indexed_chunks.jsonou PDFs que serão processados).
mvn clean package
java -jar target/api-Mercato-1.0-SNAPSHOT.jarO servidor sobe na porta definida em PORT (padrão 8080).
Para desenvolvimento rápido, também é possível:
mvn jetty:runGET /health– verificação de saúdeGET /produtos,GET /produtos/{id}– produtosGET /projects,POST /projects– gestão de projetosPOST /docs/upload,GET /docs/search– indexação/consulta de documentação (requer documentos configurados)POST /chat– chat com IA
.env, credenciais Firebase (serviceAccountKey.json)- PDFs e embeddings de documentação
- Builds/artefatos (
target/, JAR emdeploy/) - Pastas de IDE (.idea, .vscode)
- Subir um MongoDB e criar as coleções necessárias.
- Criar/baixar a chave de serviço do Firebase e salvar em
src/main/resources. - Popular
documentation/com seus PDFs ou JSONs de embeddings se for usar as rotas de documentação.