🎉 Wir sind live! Teste unsere neue FAQ-Management-PlattformLos geht's →
Logo

ReAsked API

Integrieren Sie leistungsstarkes FAQ-Management in Ihre Anwendungen mit unserer einfachen, REST-basierten API. Starten Sie in wenigen Minuten.

Schnellstart-Anleitung

1. Client installieren

Installieren Sie unseren TypeScript/JavaScript-Client für einfache Integration:

npm install @reasked/node
# or
yarn add @reasked/node
# or
pnpm add @reasked/node

2. Client initialisieren

Erstellen Sie eine Client-Instanz mit Ihrem API-Token:

import { Reasked } from '@reasked/node';

const reasked = new Reasked('your-api-key');

3. FAQ-Gruppen abrufen

Rufen Sie FAQ-Gruppen mit allen Fragen und Antworten ab:

// FAQ-Gruppe über Slug abrufen
const response = await reasked.faq.getFaqGroupBySlug('getting-started', {
  status: 'published',  // 'all', 'draft' oder 'published'
  langs: ['en', 'de']   // optionaler Sprachfilter
});

if (response.status === 'success') {
  const group = response.data;
  console.log('Gruppe:', group.translations[0].name);
  console.log('FAQs:', group.faqs.length);
  
  // Auf einzelne FAQs zugreifen
  group.faqs.forEach(faq => {
    faq.translations.forEach(translation => {
      console.log('F:', translation.question);
      console.log('A:', translation.answer);
    });
  });
}

// Oder über ID abrufen
const responseById = await reasked.faq.getFaqGroupById('00000000-0000-0000-0000-000000000000', {
  status: 'published',
  langs: ['de']
});

Datenstruktur

FAQ-Gruppen-Antwort

Hier ist, was Sie beim Abrufen einer FAQ-Gruppe erhalten:

{
  "status": "success",
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "status": "published",
    "createdAt": "2024-01-15T10:30:00Z",
    "updatedAt": "2024-01-20T14:22:00Z",
    "translations": [
      {
        "id": "trans-456",
        "name": "Erste Schritte",
        "description": "Grundlegende Einrichtung und Konfiguration",
        "lang": "de",
        "createdAt": "2024-01-15T10:30:00Z",
        "updatedAt": "2024-01-15T10:30:00Z"
      }
    ],
    "faqs": [
      {
        "id": "faq-789",
        "status": "published",
        "position": 1,
        "createdAt": "2024-01-15T10:35:00Z",
        "updatedAt": "2024-01-20T14:22:00Z",
        "translations": [
          {
            "id": "faq-trans-101",
            "question": "Wie fange ich an?",
            "answer": "Melden Sie sich einfach für ein Konto an und folgen Sie unserer Schnellstart-Anleitung.",
            "lang": "de",
            "createdAt": "2024-01-15T10:35:00Z",
            "updatedAt": "2024-01-20T14:22:00Z"
          }
        ]
      }
    ]
  }
}

Fehlerbehandlung

Die API verwendet konsistente Fehlerantworten:

// Fehlerbehandlung
try {
  const response = await reasked.faq.getFaqGroupBySlug('non-existent');

  if (response.status === 'error') {
    console.error('API-Fehler:', response.message);
    return;
  }

  // Erfolg behandeln
  console.log(response.data);
} catch (error) {
  console.error('Netzwerkfehler:', error.message);
}

Integrationsbeispiele

React-Komponente

Erstellen Sie eine React-Komponente zur Anzeige von FAQs:

import { useState, useEffect } from 'react';
import { Reasked } from '@reasked/node';

const reasked = new Reasked(process.env.REASKED_API_KEY);

export function FAQList({ groupSlug }) {
  const [faqs, setFaqs] = useState([]);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    const fetchFAQs = async () => {
      const response = await reasked.faq.getFaqGroupBySlug(groupSlug, {
        status: 'published'
      });
      
      if (response.status === 'success') {
        setFaqs(response.data.faqs);
      }
      setLoading(false);
    };
    
    fetchFAQs();
  }, [groupSlug]);

  if (loading) return <div>Lädt...</div>;

  return (
    <div className="faq-list">
      {faqs.map(faq => (
        <div key={faq.id} className="faq-item">
          <h3>{faq.translations[0].question}</h3>
          <p>{faq.translations[0].answer}</p>
        </div>
      ))}
    </div>
  );
}

Next.js Server-Komponente

Verwenden Sie serverseitiges Rendering für bessere SEO:

import { Reasked } from '@reasked/node';

const reasked = new Reasked(process.env.REASKED_API_KEY);

export default async function FAQPage({ params }) {
  const response = await reasked.faq.getFaqGroupBySlug(params.groupSlug, {
    status: 'published',
    langs: [params.lang]
  });

  if (response.status === 'error') {
    return <div>Fehler beim Laden der FAQs</div>;
  }

  const group = response.data;
  
  return (
    <div>
      <h1>{group.translations[0].name}</h1>
      <p>{group.translations[0].description}</p>
      
      {group.faqs.map(faq => (
        <article key={faq.id}>
          <h2>{faq.translations[0].question}</h2>
          <div dangerouslySetInnerHTML={{ 
            __html: faq.translations[0].answer 
          }} />
        </article>
      ))}
    </div>
  );
}

Konfigurationsoptionen

API-Schlüssel

Halten Sie ihn geheim, halten Sie ihn sicher

Sie finden ihn in Ihrem ReAsked-Dashboard

Timeout

Standard: 30000ms (30 Sekunden)

Konfigurieren Sie das Request-Timeout für Ihre Bedürfnisse

Wiederholungen

Standard: 3 Versuche

Automatische Wiederholung mit exponentieller Verzögerung

Bereit loszulegen?

Melden Sie sich für ein kostenloses Konto an und erhalten Sie Ihren API-Token. Beginnen Sie noch heute mit der Integration von FAQs in Ihre Anwendung.