Hallo zusammen! ?
Letztes Mal habe ich ein Mini-Abenteuer auf der Suche nach der besten API gemacht und nachdem ich mehrere Optionen getestet hatte, habe ich mich für Wordnik entschieden. Es verfügt über eine riesige Wortdatenbank und obwohl es eine Woche gedauert hat, die API-Schlüssel zu bekommen, habe ich sie endlich bekommen. Jetzt ist es an der Zeit, es zu integrieren und zu prüfen, ob die aus unseren Permutationen generierten Wörter tatsächlich gültig sind.
Mir ist aufgefallen, dass die meisten Wörterbuch-APIs, einschließlich Wordnik, keine direkte Möglichkeit haben, zu überprüfen, ob ein Wort existiert. Sie bieten Definitionen und Beispiele, aber keine einfache Validierung.
Um dies zu umgehen, habe ich den Scrabble-Score-Endpunkt von Wordnik verwendet. Die Logik ist einfach: Wenn ein Wort einen Scrabble-Score hat, gilt es als gültig.
async function isValidWord(word) { const apiKey = 'API_KEY'; // use your own API keys const url = `https://api.wordnik.com/v4/word.json/${word}/scrabbleScore?api_key=${apiKey}`; try { const response = await fetch(url); if (response.status === 200) { return true; // Word is valid } else if (response.status === 404) { return false; // Word not found in dictionary } else { console.error(`Error: Received status ${response.status} for word "${word}"`); return false; } } catch (error) { console.error('Error checking word validity:', error); return false; } } async function descrambleWords() { const input = document.getElementById('scrambledInput').value; const combinations = generatePermutations(input); const validWords = []; // Check each word one by one for validity for (const word of combinations) { const isValid = await isValidWord(word); if (isValid) { validWords.push(word); // Only push valid words } } const categorizedWords = categorizeByLength(validWords); displayResults(categorizedWords); }
Diese Funktion ist dafür verantwortlich, zu prüfen, ob ein bestimmtes Wort in der Wordnik-API vorhanden ist, indem sie seinen Scrabble-Score-Endpunkt abfragt.
URL-Einrichtung:
API-Anfrage:
Dies ist die Hauptfunktion, die das Eingabewort entschlüsselt und jede Permutation validiert.
Eingabe erhalten:
Permutationen generieren:
Bestätigen Sie jedes Wort:
Ich werde den Live-Link teilen, sobald ich eine Möglichkeit finde, meine API-Schlüssel zu sichern, bevor ich sie an GitHub weitergebe.
Eine weitere Hürde war die durch die Wordnik-API auferlegte Ratenbegrenzung. Als ich das Limit überschritten habe, trat beim Validierungsprozess der Fehler 429 (Too Many Requests) auf, wodurch alles gestoppt wurde. Eine mögliche Lösung, die ich in Betracht ziehe, besteht darin, eine Verzögerung hinzuzufügen, wenn das Limit erreicht ist, um eine Überlastung der API zu vermeiden.
Wenn Sie bessere Ideen oder Vorschläge haben, teilen Sie diese gerne in den Kommentaren mit oder kontaktieren Sie mich auf Twitter.
Als nächstes: Ich werde an der Optimierung der Leistung arbeiten, eine Lösung für die Ratenbegrenzung finden und sicherstellen, dass die Eingabe nur Zeichenfolgen und keine Zahlen akzeptiert.
Bleiben Sie dran für weitere Updates!
Das obige ist der detaillierte Inhalt vonErstellen eines Word-Unscramblers mit JavaScript (Teil 4). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!