Appearance
Endpoints da API Astro e Integração Backend
Status: ✅ Totalmente documentado
Visão Geral
A aplicação p2d2 utiliza Endpoints da API Astro para integrações seguras de backend com serviços externos de geodados. Estes endpoints oferecem tratamento de CORS, autenticação e um robusto tratamento de erros para serviços WFS, API Overpass e integrações com o Geoserver.
Avisos de Segurança
Status das Credenciais
Nota: Em produção, as credenciais são gerenciadas exclusivamente através de variáveis de ambiente (import.meta.env.WFS_USERNAME, import.meta.env.WFS_PASSWORD). Credenciais fixadas no código (hardcoded) nunca são aplicadas em ambientes de produção, representando apenas soluções temporárias ou estágios de desenvolvimento/teste e estão marcadas com avisos.
Arquivos Afetados:
src/pages/api/wfs-proxy.ts- Espera variáveis de ambientesrc/utils/wfs-auth.ts- Espera variáveis de ambiente
Medidas Imediatas Necessárias:
- Assegurar que nenhuma credencial fixada no código permaneça no código-fonte de produção
- Configurar corretamente as variáveis de ambiente para todos os ambientes
- Em desenvolvimento/teste, usar avisos claros ao utilizar fallbacks
Endpoints Principais da API
1. Endpoint de Proxy WFS (/api/wfs-proxy.ts)
Proxy seguro para requisições de serviço WFS com suporte a CORS e autenticação via ambiente.
Implementação Padrão
typescript
const WFS_USERNAME = import.meta.env.WFS_USERNAME;
const WFS_PASSWORD = import.meta.env.WFS_PASSWORD;
if (!WFS_USERNAME || !WFS_PASSWORD) {
throw new Error("WFS authentication not configured in environment");
}Notas sobre Desenvolvimento
typescript
// Dev-Fallback – apenas para testes locais e com avisos claros:
const WFS_USERNAME = import.meta.env.WFS_USERNAME || "dev_user";
const WFS_PASSWORD = import.meta.env.WFS_PASSWORD || "dev_password";2. Endpoint de Sincronização de Polígonos (/api/sync-polygons.ts)
Endpoint da API para sincronização automática de polígonos com a API Overpass e WFS-T.
Especificação do Endpoint
typescript
export async function POST({ request }) {
const { slug, categories } = await request.json();
const result = await syncKommunePolygons(slug, categories);
return new Response(JSON.stringify(result), {
status: result.success ? 200 : 500
});
}Integrações de Serviços Backend
Gerenciamento de Transações WFS
O acesso ao WFS-T ocorre de forma análoga: As credenciais vêm sempre de variáveis .env.
Aspectos de Segurança
- Credenciais nunca devem ser fixadas no código (hardcoded)
- Validação das variáveis .env no início e em cada requisição
- Tratamento claro de erros em caso de ausência
Conclusão
A documentação descreve o manuseio produtivo de credenciais via variáveis de ambiente e oferece as melhores práticas para desenvolvimento, teste e uso em produção.
Nota: Este texto foi traduzido automaticamente com assistência de IA e ainda não foi revisado por um humano.