Beste Nachrichten-API für React 2026 (RSC, SWR, TanStack Query)

Jacob Partington

Jacob Partington

·

25 minuten Lesen

Beste Nachrichten-API für React 2026 (RSC, SWR, TanStack Query)

Beste Nachrichten-API für React-Anwendungen in 2026 (RSC, TanStack Query, SWR und SSE)

Wählen Sie die falsche Nachrichten-API für Ihre React-App und Sie erhalten die gleichen Fehler: CORS-Fehler in der Produktion, ein API-Schlüssel, der an main.js ausgeliefert wurde, ein Next.js-Build, der abstürzt, weil der Anbieter SDK fs importiert, oder ein useEffect + fetch, der bei jedem Rendern erneut ausgelöst wird. Die Frage nach der Nachrichten-API in 2026 lautet nicht „welcher Anbieter?“ – sondern „welcher Anbieter funktioniert mit der Art und Weise, wie React heute tatsächlich rendert.“

Offenlegung. Dieser Beitrag erscheint im APITube-Blog. APITube ist eine der unten aufgeführten APIs. Jeder React-Ausschnitt wird wie geschrieben ausgeführt.

TL;DR — die beste Nachrichten-API für React in 2026

Die beste Nachrichten-API für React in 2026 ist APITube, NewsData.io oder Perigon, da jeder von ihnen Header-basierte Authentifizierung (X-API-Key) verwendet, sauberes JSON zurückgibt und identisch in einer Next.js 15 Server Component, einem Route Handler oder einer clientseitigen useQuery funktioniert. NewsAPI.org disqualifiziert sich für echte React-Apps, indem es Nicht-Localhost-Browser-Ursprünge blockiert und ?apiKey= Query-String-Authentifizierung verwendet.

APIBestes React-MusterBrowser-sicher?Authentifizierung
APITubeRSC oder Route Handler Proxyüber ProxyX-API-Key Header
NewsData.ioRSC oder Route Handler Proxyüber ProxyHeader
PerigonRSC oder Route Handler Proxyüber ProxyHeader
GNewsRoute Handler Proxynur über ProxyAbfrageparameter
TheNewsAPIRoute Handler Proxyüber ProxyHeader
NewsAPI.orgRoute Handler ProxyCORS-blockiert von BrowsernAbfrageparameter

Der Rest dieses Artikels: Warum Sie niemals einen Nachrichten-API-Schlüssel in eine React-Komponente einfügen sollten, drei kanonische React-Muster (RSC, SWR, TanStack Query), useInfiniteQuery für paginierte Nachrichten, ein Live-Nachrichten-SSE-Hook und Produktions-UX (Suspense + Fehlergrenze + Skelett).

Dieser Artikel ist für Sie, wenn

Sie sind ein React-Entwickler, der in die Produktion liefert – CRA, Vite SPA, Next.js App Router oder Remix. Sie möchten Muster, die keine Schlüssel preisgeben, nicht ständig neu rendern und nicht brechen, wenn Sie paginieren oder streamen.

Inhaltsverzeichnis

Stecken Sie Ihren API-Schlüssel niemals in eine React-Komponente

Die meisten Tutorials zu "Nachrichten-API in React" beginnen so:

// ❌ DON'T: key ships to browser, visible in DevTools → Network → main.js
function NewsFeed() {
  useEffect(() => {
    fetch(`https://api.example.com/news?apiKey=${process.env.NEXT_PUBLIC_NEWS_KEY}`)
      .then((r) => r.json()).then(setArticles);
  }, []);
}

Alles, was mit NEXT_PUBLIC_* (Next.js) oder REACT_APP_* (App erstellen React) beginnt, wird zur Build-Zeit in das Client-Bundle eingebettet. Öffnen Sie DevTools auf jeder Seite, die diese Komponente verwendet, und der Schlüssel ist nur wenige Scroll-Ticks in einer JS-Datei entfernt. Die meisten Anbieter werden einen Schlüssel drehen oder sperren, sobald er in einer öffentlichen GitHub-Suche erscheint.

Die Lösung ist keine Bibliothek – sie ist Architektur. Platzieren Sie den Schlüssel nur im serverseitigen Code und stellen Sie dann einen schlanken Proxy bereit:

// ✅ DO: app/api/news/route.ts (Next.js 15 Route Handler)
export const runtime = "nodejs"; // or "edge"
export async function GET(req: Request) {
  const { searchParams } = new URL(req.url);
  const q = searchParams.get("q") ?? "news";
  const res = await fetch(
    `https://api.apitube.io/v1/news/everything?title=${encodeURIComponent(q)}&per_page=20`,
    { headers: { "X-API-Key": process.env.APITUBE_KEY! } } // server-only env var
  );
  const data = await res.json();
  return Response.json(data.results);
}

Client-Code greift jetzt auf /api/news?q=openai zu – Schlüssel bleibt auf dem Server. Gleiches Muster in Remix (loader/action), SvelteKit, Astro-Serverrouten oder einem winzigen Express/Hono-Proxy für eine reine SPA.

NewsAPI.org ist ein Sonderfall: Seine CORS-Richtlinie blockiert aktiv Nicht-Localhost-Ursprünge im Entwicklerplan, was bedeutet, dass es selbst dann nicht in der Produktion funktionieren würde, wenn Sie es von einer React-Komponente aufrufen wollten. Ein Proxy ist die einzige Option. Jeder andere wichtige Anbieter ist standardmäßig proxyfähig; NewsAPI.org benötigt ihn für Browser-Code.

Siehe unsere NewsAPI.org-Migrationshinweise für die vollständige Geschichte.

Die 6 Nachrichten-APIs, bewertet für React

Dasselbe Template pro Anbieter: empfohlenes Muster, minimales Beispiel, eine Besonderheit.

1. APITube

Empfohlenes Muster: Next.js 15 RSC oder Route Handler. Native fetch, X-API-Key Header. Unterstützt SSE Streaming für Live-Feeds.

// RSC
const res = await fetch(
  "https://api.apitube.io/v1/news/everything?title=openai&language.code=en",
  { headers: { "X-API-Key": process.env.APITUBE_KEY! }, next: { revalidate: 60 } }
);

Eigenart: kein offizielles React SDK – das ist ein Feature. Die Antwort enthält sentiment, entities, summary. Funktioniert identisch in Server Components, Route Handlers und (über Proxy) Client Hooks.

2. NewsData.io

Empfohlenes Muster: Route Handler Proxy + TanStack Query. Header-Authentifizierung unterstützt.

const res = await fetch(
  "https://newsdata.io/api/1/latest?q=openai&language=en",
  { headers: { "X-API-Key": process.env.NEWSDATA_KEY! } }
);

Eigenart: Paginierung verwendet einen nextPage-Cursor-String – ideal für useInfiniteQuery.

3. Perigon

Empfohlenes Muster: RSC. Perigons ereignisclusterte Antwort passt gut zu serverseitig gerenderten Feature-Karten.

const res = await fetch(
  "https://api.goperigon.com/v1/all?q=openai&language=en",
  { headers: { "x-api-key": process.env.PERIGON_KEY! }, next: { revalidate: 120 } }
);

Eigenart: reichhaltigeres Schema (Cluster, Entitäten) – entweder auf dem Server rendern oder zod-parsen zu einer schlanken Client-Form.

4. GNews

Empfohlenes Muster: Route Handler Proxy. Query-Param-Authentifizierung bedeutet, dass Sie dies niemals von einer Client-Komponente aus aufrufen.

const res = await fetch(
  `https://gnews.io/api/v4/search?q=openai&lang=en&apikey=${process.env.GNEWS_KEY}`
);

Eigenart: niedrigere Ratenbegrenzungen; aggressiv cachen mit next: { revalidate: 300 }.

5. TheNewsAPI

Empfohlenes Muster: Route Handler Proxy. Header-Authentifizierung.

const res = await fetch(
  "https://api.thenewsapi.com/v1/news/all?search=openai&locale=us",
  { headers: { Authorization: `Bearer ${process.env.THENEWSAPI_KEY!}` } }
);

Eigenart: engere Länderabdeckung (~50 Länder).

6. NewsAPI.org

Empfohlenes Muster: Route Handler Proxy, obligatorisch. Nicht vom Client aufrufen.

const url = new URL("https://newsapi.org/v2/everything");
url.searchParams.set("q", "openai");
url.searchParams.set("apiKey", process.env.NEWSAPI_KEY!);
const res = await fetch(url);

Besonderheit: CORS-blockiert auf Nicht-Localhost; Produktion erfordert den $449/Monat Business-Tier. Keine gute Standardwahl für den Versand von React-Apps.

Muster 1: Next.js 15 App Router + asynchrones RSC

Server-Komponenten ermöglichen es Ihnen, direkt in einer Komponente await fetch(). Kein useState, kein useEffect, keine clientseitige Hydration der Nachrichtendaten. Der Schlüssel berührt niemals den Browser.

// app/news/page.tsx
export const revalidate = 60; // ISR: regenerate every 60s

async function fetchNews() {
  const res = await fetch(
    "https://api.apitube.io/v1/news/everything?title=technology&per_page=12",
    { headers: { "X-API-Key": process.env.APITUBE_KEY! }, next: { revalidate: 60 } }
  );
  if (!res.ok) throw new Error(`News fetch failed: ${res.status}`);
  const data = await res.json();
  return data.results as Article[];
}

export default async function NewsPage() {
  const articles = await fetchNews();
  return (
    <main className="grid gap-4 p-6">
      {articles.map((a) => (
        <article key={a.href}>
          <h2>{a.title}</h2>
          <p>{a.summary}</p>
          <a href={a.href}>Read →</a>
        </article>
      ))}
    </main>
  );
}

Next.js erweitert fetch() mit Cache-Steuerungen, die unter nextjs.org/docs/app/api-reference/functions/fetch dokumentiert sind. next: { revalidate: 60 } speichert im Cache für 60 Sekunden; cache: 'no-store' deaktiviert das Caching für Live-Daten.

Wenn der Benutzer auf einen Filter klickt, lösen Sie eine Server-Aktion aus oder navigieren Sie zu /news?topic=x mit useRouter — die RSC wird auf dem Server mit der neuen Abfrage neu gerendert, und nur der HTML-Diff wird an den Client gestreamt.

Muster 2: useSWR für einen Client-seitigen Feed

Verwenden Sie SWR, wenn der Feed einfach ist: aktuelle Schlagzeilen, keine Paginierung, keine komplexe Cache-Invalidierung. SWR ist 5.3 KB gzip-komprimiert und hat sinnvolle Standardeinstellungen – Revalidierung bei Fokus, Revalidierung bei Wiederverbindung, Deduplizierung identischer Anfragen.

"use client";
import useSWR from "swr";

const fetcher = (url: string) => fetch(url).then((r) => r.json());

export function NewsList({ query }: { query: string }) {
  const { data, error, isLoading } = useSWR(
    `/api/news?q=${encodeURIComponent(query)}`,   // your Route Handler, not the vendor
    fetcher,
    { refreshInterval: 60_000 }                    // poll every minute
  );

  if (isLoading) return <NewsSkeleton />;
  if (error) return <NewsError onRetry={() => location.reload()} />;
  if (!data?.length) return <EmptyFeed />;

  return (
    <ul>
      {data.map((a: Article) => (
        <li key={a.href}><a href={a.href}>{a.title}</a></li>
      ))}
    </ul>
  );
}

Der Hook greift auf /api/news zu, nicht auf den Anbieter. Der Schlüssel ist auf dem Server.

Muster 3: TanStack Query + useInfiniteQuery für paginierte Nachrichten

TanStack Query ist 16.2 KB gzippt und verdient sein Gewicht, wenn Sie Paginierung, Mutationen und gemeinsamen Cache-Status im gesamten Baum benötigen. useInfiniteQuery ist das kanonische Muster für Nachrichten-Feeds mit unendlichem Scrollen. Doku: tanstack.com/query.

"use client";
import { useInfiniteQuery } from "@tanstack/react-query";

type NewsPage = { articles: Article[]; nextCursor?: string };

async function fetchPage({ pageParam }: { pageParam?: string }): Promise<NewsPage> {
  const url = new URL("/api/news", location.origin);
  url.searchParams.set("q", "technology");
  if (pageParam) url.searchParams.set("cursor", pageParam);
  const res = await fetch(url);
  if (!res.ok) throw new Error(`HTTP ${res.status}`);
  return res.json();
}

export function InfiniteNews() {
  const {
    data, fetchNextPage, hasNextPage, isFetchingNextPage, status,
  } = useInfiniteQuery({
    queryKey: ["news", "technology"],
    queryFn: fetchPage,
    initialPageParam: undefined as string | undefined,
    getNextPageParam: (last) => last.nextCursor,
    staleTime: 30_000,
  });

  if (status === "pending") return <NewsSkeleton />;
  if (status === "error") return <NewsError />;

  return (
    <>
      {data.pages.flatMap((p) => p.articles).map((a) => (
        <article key={a.href}><h3>{a.title}</h3></article>
      ))}
      <button
        onClick={() => fetchNextPage()}
        disabled || isFetchingNextPage}
      >
        {isFetchingNextPage ? "Loading…" : hasNextPage ? "Load more" : "End of feed"}
      </button>
    </>
  );
}

Verdrahten Sie den Button mit einer IntersectionObserver für echtes unendliches Scrollen. Der Routenhandler gibt { articles, nextCursor } zurück – der Cursor kommt von der Paginierung des Anbieters (NewsData's nextPage, APITube's next_page / has_next_pages usw.).

Live-Nachrichten mit SSE in einer Client-Komponente

Wenn das Produkt Push-Updates und keine Abfragen benötigt, verwenden Sie Server-Sent Events. APITube stellt text/event-stream bereit. Wickeln Sie EventSource in einen benutzerdefinierten Hook mit Wiederverbindung ein:

"use client";
import { useEffect, useState } from "react";

export function useNewsStream(endpoint: string) {
  const [articles, setArticles] = useState<Article[]>([]);
  const [connected, setConnected] = useState(false);

  useEffect(() => {
    const es = new EventSource(endpoint); // hits YOUR proxy, not the vendor
    es.onopen = () => setConnected(true);
    es.onerror = () => setConnected(false); // EventSource auto-reconnects
    es.onmessage = (evt) => {
      const article = JSON.parse(evt.data) as Article;
      setArticles((prev) => [article, ...prev].slice(0, 50)); // cap memory
    };
    return () => es.close();
  }, [endpoint]);

  return { articles, connected };
}

// Usage
function LiveFeed() {
  const { articles, connected } = useNewsStream("/api/news/stream");
  return (
    <>
      <div>Status: {connected ? "🟢 live" : "🔴 reconnecting"}</div>
      <ul>{articles.map((a) => <li key={a.href}>{a.title}</li>)}</ul>
    </>
  );
}

Der /api/news/stream Route Handler öffnet einen langlebigen Fetch zum APITube SSE-Endpunkt und leitet Bytes direkt mit ReadableStream durch. Keine zusätzliche Bibliothek, kein Polling.

Produktions-UX – Spannung, Skelett, Fehlergrenze

Ein Drei-Div-„Lade…“ ist kein UX. Komponieren Sie Suspense + <ErrorBoundary> + Skelett:

import { Suspense } from "react";
import { ErrorBoundary } from "react-error-boundary";

export function NewsSection() {
  return (
    <ErrorBoundary fallback={<NewsError />}>
      <Suspense fallback={<NewsSkeleton count={6} />}>
        <AsyncNewsList />
      </Suspense>
    </ErrorBoundary>
  );
}

function NewsSkeleton({ count = 6 }) {
  return (
    <ul className="grid gap-4">
      {Array.from({ length: count }).map((_, i) => (
        <li key={i} className="h-24 animate-pulse rounded bg-gray-200" />
      ))}
    </ul>
  );
}

Vier Zustände zu handhaben – Laden, Fehler, Leer, Erfolg. Der leere Zustand ist wichtig: Ein Feed-Filter, der null Artikel zurückgibt, sollte den Nutzern den Grund mitteilen, nicht eine leere Seite anzeigen.

useSWR vs. TanStack Query für Nachrichten-Feeds

Entscheidungsregeln nach Szenario:

SzenarioAuswählenWarum
Widget für die neuesten Schlagzeilen, einzelne Abfrage, keine PaginierungSWR5.3 KB, Fokus-Revalidierung ist ideal für „Was gibt es Neues?“
Suche während der Eingabe mit Debounce, 1-2-FilternSWRDedup erledigt das; der Zustand ist einfach
Paginierter / Infinite-Scroll-NachrichtenfeedTanStack QueryuseInfiniteQuery ist zweckgebunden
Artikel speichern (später lesen), Benutzermutationen + Cache-SynchronisierungTanStack QueryuseMutation + queryClient.invalidateQueries
Dashboard mit 4+ Nachrichten-Widgets, die den zwischengespeicherten Zustand teilenTanStack QueryGlobaler Cache, Abfrageschlüssel, DevTools

Numerische Regel: Wenn die Nachrichten-UI einen Hook pro Seite verwendet, reicht SWR aus. Wenn sie drei oder mehr koordinierte Abfragen oder eine Mutation beinhaltet, verwenden Sie TanStack Query. Der Unterschied zwischen 11 und KB zahlt sich beim ersten Mal aus, wenn Sie useInfiniteQuery.

Was sich für React in 2026-2027 ändert

Drei Änderungen machen die Wahl der Nachrichten-React-Seite für die API-Shops folgenschwerer:

  1. RSC ist jetzt Standard in Next.js und den meisten neuen React-Frameworks. Nachrichten-APIs, die auf ein reines Browser-SDK angewiesen sind, sind zunehmend umständlich; Anbieter mit reinem REST + Header-Authentifizierung funktionieren im Server-Tree ohne Zeremonie. Ein sauberes REST API funktioniert identisch in Server Components, Route Handlers und Edge-Funktionen, was bedeutet, dass Sie einen Anbieter auswählen und überall versenden.

  2. NEXT_PUBLIC_* öffentliche Umgebungsvariablen unterliegen einer strengeren CI-Überprüfung. Sicherheits-Linters und Überprüfungen zur Bereitstellungszeit warnen zunehmend, wenn öffentliche Umgebungsvariablen wie API-Schlüssel benannt sind. Teams, die neue Codebasen in 2026 ausliefern, werden standardmäßig das Proxy-Muster verwenden; die alte "füge einfach NEXT_PUBLIC_ hinzu"-Verknüpfung wird zunehmend zu einem CI-Fehler.

  3. AI-native React Apps rufen Nachrichten server-seitig ab. Apps, die auf Vercel AI SDK, LangChain.js oder Mastra mit React UIs basieren, rufen Nachrichten im Server-Baum ab, bevor der Kontext an das Modell übergeben wird. Das Abrufen von Nachrichten auf der Browser-Seite für AI-Flows ist ein Anti-Pattern. Die React Nachrichten-API Auswahl in 2026 entspricht effektiv der Node Nachrichten-API Auswahl eines Server-Frameworks, das React rendert.

Häufig gestellte Fragen

Wie rufe ich Nachrichten in React ab?

Der empfohlene Weg, Nachrichten in React in 2026 abzurufen, ist der Aufruf eines serverseitigen Proxys (Next.js Route Handler, Remix Loader oder Express Endpoint), der den API-Schlüssel speichert, da der direkte Aufruf einer Nachrichten-API von einer React-Komponente den Schlüssel in das Client-Bundle leckt. Für die Produktion koppeln Sie den Proxy mit useSWR (einfache Feeds) oder TanStack Query useQuery/useInfiniteQuery (paginierte oder komplexe Feeds).

Ist React Query besser als SWR für Nachrichten?

TanStack Query ist besser als SWR für Nachrichten-Feeds, die Paginierung, Mutationen oder gemeinsamen Cache zwischen Komponenten benötigen, da useInfiniteQuery und useMutation genau diese Fälle abdecken. SWR ist besser für einen einzelnen Hook für die neuesten Schlagzeilen, da es 5.3 KB gegenüber TanStack Querys 16.2 KB ist. Für einen Produktions-Nachrichten-Feed mit unendlichem Scrollen wählen Sie TanStack Query.

Wie baue ich einen Nachrichtenfeed in Next.js?

Um einen Nachrichtenfeed in Next.js 15 zu erstellen, erstellen Sie eine asynchrone Serverkomponente, die die Nachrichten-API serverseitig mit Ihrem Schlüssel in einer nur serverseitigen Umgebungsvariable await fetch()t, rendern Sie dann die Ergebnisse als HTML. Fügen Sie next: { revalidate: 60 } für ISR hinzu. Für unendliches Scrollen stellen Sie einen Routenhandler unter /api/news bereit und rufen Sie ihn von einer Clientkomponente mit TanStack Querys useInfiniteQuery ab.

Wie verstecke ich meinen API-Schlüssel in React?

Sie verstecken Ihren API-Schlüssel in React, indem Sie ihn in einer nur serverseitigen Umgebungsvariable (kein NEXT_PUBLIC_- oder REACT_APP_-Präfix) aufbewahren und die Nachrichten-API nur aus serverseitigem Code aufrufen – einem Next.js-Routenhandler, einem Remix-Loader oder einem Backend-Proxy. Alles, was mit NEXT_PUBLIC_* oder REACT_APP_* beginnt, wird in das Browser-Bundle eingebettet und ist in DevTools sichtbar.

Kann React News API direkt aufrufen?

Nein, React kann NewsAPI.org in 2026 nicht sicher direkt aufrufen, da seine CORS-Richtlinie Nicht-localhost-Browser-Ursprünge im Entwicklerplan blockiert und die ?apiKey=-Abfragezeichenfolge-Authentifizierung den Schlüssel preisgeben würde, selbst wenn CORS dies zulassen würde. Das korrekte Muster ist ein serverseitiger Proxy. Andere Anbieter mit Header-Authentifizierung (APITube, NewsData.io, Perigon) sind technisch CORS-freundlicher, sollten aber in der Produktion immer noch für die Schlüsselsicherheit per Proxy aufgerufen werden.

Urteil

Die beste Nachrichten-API für React in 2026 ist diejenige, die mit dem Standard-Rendering-Modell von React funktioniert – Server-zuerst, Proxy den Schlüssel, lassen Sie eine Hook-Bibliothek den Cache auf dem Client verwalten. APITube, NewsData.io und Perigon qualifizieren sich alle; NewsAPI.org nicht ohne eine kostenpflichtige Stufe und einen Proxy. Was auch immer Sie wählen, das Proxy-Muster ist nicht verhandelbar und die Wahl des Hooks (useSWR vs. useQuery) ergibt sich aus der Komplexität des Feeds.

APITube liefert einen sauberen REST API, der in Server Components, Route Handlers und Browser-Fetches hinter einem Proxy gleichermaßen gut funktioniert – X-API-Key-Header, SSE-Streaming, 100 Anfragen/Tag in der kostenlosen Stufe, kommerzielle Nutzung erlaubt. apitube.io

Weiterführende Lektüre: Beste Nachrichten-API in 2026: Vollständiger Vergleichsleitfaden · Beste Nachrichten-API für JavaScript & Node.js 2026 · Next.js fetch Referenz · TanStack Query Docs

Ressourcen

  • APITube — apitube.io — kostenlos testen, Sentiment und Entitäten in jedem Artikel enthalten
  • Dokumentation — docs.apitube.io — Endpunkte, Parameter, Antwortstruktur, Integrationen
  • Preise – apitube.io/pricing – alle Stufen
  • APITube Blog — apitube.io/blog — weitere Leitfäden und Vergleiche

Verwandte Anleitungen:

APITube - News API

Verwandte Artikel

Next.js-Tutorial für mehrsprachige Apps 2026: UI Content i18n</h4><h2></h2>
Developer Guides

Next.js-Tutorial für mehrsprachige Apps 2026: UI Content i18n</h4><h2></h2>

Build a Next.js 16 news reader with translated interface text, articles in 60+ languages, and metadata for each language. Includes next-intl, hreflang, a sitemap, and RTL support.

React News Dashboard Tutorial 2026: SSE + TypeScript
Developer Guides

React News Dashboard Tutorial 2026: SSE + TypeScript

Erstellen Sie ein Echtzeit-React-Nachrichten-Dashboard mit TypeScript und Server-Sent Events. Vollständiger Code, 429-sicherer Fetch-Hook, Sentiment-Filter, Vercel-Deployment.

Beste Nachrichten-API für JavaScript & Node.js 2026 (+TS + SSE)
Insights

Beste Nachrichten-API für JavaScript & Node.js 2026 (+TS + SSE)

Beste Nachrichten-API für JavaScript und Node.js in 2026 — 7-Auswahl im Vergleich, ein wiederverwendbarer TypeScript-Fetch-Wrapper, SSE-Streaming und Produktionshinweise.

Verify Breaking News Before You Act: Risk Checklist
Insights

Verify Breaking News Before You Act: Risk Checklist

Verify breaking news before you trade, hedge or publish: a 7-step checklist and a stakes-based rule for how many sources to confirm before you act.

Wir verwenden Cookies

Durch Klicken auf "Akzeptieren" stimmen Sie der Verwendung von Cookies auf Ihrem Gerät zu, damit die Website funktioniert und für Analysen.