皆さんこんにちは! ?
前回、私は最適な API を探す小さな冒険に出かけ、いくつかのオプションを試した後、Wordnik に落ち着きました。膨大な単語データベースがあり、API キーの取得に 1 週間かかりましたが、ようやく取得できました。次に、それを統合し、順列から生成された単語が実際に有効かどうかを確認します。
私が気づいたのは、Wordnik を含むほとんどの辞書 API には、単語が存在するかどうかを直接確認する方法がないということです。これらは定義と例を提供しますが、単純な検証ではありません。
これを回避するために、Wordnik の Scrabble スコア エンドポイントを使用しました。ロジックは単純です。単語にスクラブル スコアがある場合、その単語は有効であるとみなされます。
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); }
この関数は、Scrabble スコア エンドポイントをクエリすることで、特定の単語が Wordnik API に存在するかどうかを確認する役割を果たします。
URL 設定:
API リクエスト:
これは、入力単語のスクランブルを解除し、各順列を検証するメイン関数です。
入力を取得:
順列の生成:
各単語を検証します:
GitHub にプッシュする前に API キーを保護する方法が見つかり次第、ライブ リンクを共有します。
もう 1 つのハードルは、Wordnik の API によって課されたレート制限でした。制限を超えると、検証プロセスで 429 (Too Many Requests) エラーが発生し、すべてが停止しました。私が検討している潜在的な解決策は、API の過負荷を避けるために制限に達したときに遅延を追加することです。
より良いアイデアや提案がある場合は、お気軽にコメントで共有するか、Twitter で私にご連絡ください。
次は: パフォーマンスの最適化、レート制限の解決策を見つけて、入力が数値ではなく文字列のみを受け入れるようにすることに取り組みます。
今後の最新情報をお楽しみに!
以上がJavaScript を使用した Word Unscrambler の構築 (パート 4)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。