Skip to content
Geprüft85%
Vollständigkeit:
80%
Korrektheit:
90%
⏳ Noch nicht geprüft

Конечные точки API Astro и интеграция с бэкендом

Статус: ✅ Полностью документировано

Обзор

Приложение p2d2 использует конечные точки API Astro для безопасной интеграции бэкенда с внешними геоданными. Эти конечные точки обеспечивают обработку CORS, аутентификацию и надежную обработку ошибок для сервисов WFS, Overpass API и интеграций с Geoserver.

Указания по безопасности

Статус учетных данных

Примечание: В производственной среде учетные данные управляются исключительно через переменные окружения (import.meta.env.WFS_USERNAME, import.meta.env.WFS_PASSWORD). Жестко закодированные учетные данные никогда не используются в производственных средах, а представляют собой лишь временные обходные пути или используются на этапах разработки/тестирования и помечены предупреждениями.

Затронутые файлы:

  • src/pages/api/wfs-proxy.ts - Ожидает переменные окружения
  • src/utils/wfs-auth.ts - Ожидает переменные окружения

Необходимые немедленные действия:

  1. Убедиться, что в производственном исходном коде не осталось жестко закодированных учетных данных
  2. Правильно настроить переменные окружения для всех сред
  3. При разработке/тестировании использовать четкие предупреждения при использовании резервных вариантов

Основные конечные точки API

1. Конечная точка WFS Proxy (/api/wfs-proxy.ts)

Безопасный прокси для запросов к сервису WFS с поддержкой CORS и аутентификацией на основе окружения.

Стандартная реализация

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");
}

Заметки по разработке

typescript
// Резервный вариант для разработки – только для локальных тестов и с четкими предупреждениями:
const WFS_USERNAME = import.meta.env.WFS_USERNAME || "dev_user";
const WFS_PASSWORD = import.meta.env.WFS_PASSWORD || "dev_password";

2. Конечная точка синхронизации полигонов (/api/sync-polygons.ts)

Конечная точка API для автоматической синхронизации полигонов с Overpass API и WFS-T.

Спецификация конечной точки

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
  });
}

Интеграции сервисов бэкенда

Управление транзакциями WFS

Доступ к WFS-T осуществляется аналогично: учетные данные всегда поступают из переменных .env.

Аспекты безопасности

  • Учетные данные никогда не должны быть жестко закодированы
  • Валидация переменных .env при запуске и при каждом запросе
  • Четкая обработка ошибок в случае их отсутствия

Заключение

Документация описывает производственное обращение с учетными данными через переменные окружения и предлагает лучшие практики для разработки, тестирования и производственного использования.

Примечание: Этот текст был автоматически переведен с помощью ИИ и еще не проверен человеком.