コンテンツへスキップ
Tutorial

1 回の API 呼び出しでドメインの可用性を確認する

| 5 min read

ドメイン名を POST し、可用性ブール値とレジストラ データを 200 ミリ秒以内に取得します。 リアルタイムのドメイン検索 UI を構築し、TLD をバッチチェックし、プログラムで名前を提案します。

Domain search bar on a minimalist screen
Photo by Stephen Phillips on Unsplash

新しいワークスペースのカスタム ドメインを提案する SaaS オンボーディング フローを構築しています。 ユーザー 「acme」と入力すると、UI はリアルタイムで acme.com、acme.io、acme.dev をチェックする必要があります。 レジストラ API ルックアップごとに料金を請求し、承認ワークフローを要求し、厳格なレート制限を課します。 必要なのは、 ブール値を返して邪魔にならない軽量の可用性チェック。

ボトイ /v1/domain/availability エンドポイントは 1 つのことを行います。ドメインがドメインかどうかを通知します。 が登録されています。 ドメイン名を POST して、戻ってきます availableregistered、そして レジストラ名が存在する場合。 レジストラアカウント、WHOIS解析、スクレイピングはありません。

API呼び出し

ドメインが利用可能な場合:

ドメインが取得されると、次のようになります。

The response is minimal on purpose. available 分岐するブール値です。 registered はその逆であり、読みやすくするために含まれています。 ドメインが取得されると、 registrar フィールドには、誰がそれを保持しているかが表示されます。 エンドポイントは RDAP (公式 WHOIS) にクエリを実行します。 後継者)なので、データは信頼できます。

リアルタイムドメイン検索UI

入力しながら検索するエクスペリエンスを実現するには、入力をデバウンスし、古いリクエストをキャンセルします。 AbortController。 300 ミリ秒の遅延により、すべてのキーストロークでの発火が防止され、同時に UI レスポンシブ。

中止ロジックは重要です。 これがないと、「acm」の応答が遅くなり、「acm」の結果が上書きされる可能性があります。 リクエストが順番どおりに解決されない場合は、「acme」。 の AbortController あなたを保証します 常に最新の入力の結果を表示します。

複数のTLDを一括チェックする

ほとんどのドメイン検索ツールは複数の TLD を一度にチェックします。 並列リクエストを発行します Promise.all 結果をグリッドとして表示します。

5 つの並列リクエストが 1 つの順次リクエストの時間内に完了します。 無料枠では (5 リクエスト/分、100 リクエスト/日)、これは開発とデモに機能します。 運用環境の場合は、API キーを追加します レート制限を削除します。

Node.js のドメイン提案機能

ドメイン提案エンジンは、ユーザーのキーワードと一般的なキーワードを組み合わせて候補を生成します。 プレフィックスと TLD をフィルタリングして、利用可能なものを絞り込みます。 ドロップできる完全な関数は次のとおりです Express または Hono バックエンドに接続します。

これにより、12 個の候補 (4 つのプレフィックス x 3 TLD) が並行してチェックされます。 関数は利用可能なもののみを返します ドメインに含まれるため、フロントエンドは追加のフィルタリングを行わずにそれらを候補として表示できます。

SaaS オンボーディング フローの Express エンドポイント

ワークスペースの作成中にフロントエンドが呼び出す Express ルートにバッチ チェックを接続します。 API キーはバックエンドで処理されるため、クライアントに到達することはありません。

フロントエンドの POST {"{ name: \"acme\" }"} そして、次のようにしてドメインのリストを返します。 可用性ステータス。 そこから、緑/赤のインジケーターをレンダリングし、ユーザーに選択させます。

重要なポイント

  • エンドポイントは 1 つ、目的は 1 つ。 役職 /v1/domain/availabilitydomain 分野。 応答により、登録されているかどうか、レジストラが誰であるかがわかります。 他には何もありません。
  • RDAP ベース。 エンドポイントは、ICANN が承認した代替手段である RDAP にクエリを実行します。 誰が? 画面のスクレイピングや脆弱なテキスト解析はありません。
  • API キーなしで動作します。 1 分あたり 5 リクエストの匿名アクセスがカバーされます プロトタイピングと開発。 実稼働環境に移行するときにキーを追加します。
  • パラレルフレンドリー。 TLD をバッチチェックする Promise.all。 5 チェックは 1 回と同じ実時間内に完了します。
  • 200ms 未満の応答。 Cloudflare Workers 上にエッジデプロイされるため、レイテンシーが ボトルネックは API 自体ではなく、上流の RDAP サーバーです。

FAQ

ドメインの可用性を確認するには API キーが必要ですか?
いいえ。無料枠では、IP ベースのレート制限により、1 分あたり 5 リクエストの匿名アクセスが許可されます。 バッチ チェックまたは運用アプリの場合は、制限を高めるために API キーを Authorization ヘッダーに追加します。
ドメイン可用性エンドポイントはどの TLD をサポートしますか?
エンドポイントは、.com、.net、.org、.io、.dev、.app、および数百の国コード TLD を含む、すべての ICANN 認定 TLD をカバーする RDAP サーバーにクエリを実行します。 適用範囲は、TLD オペレーターが RDAP データを公開するかどうかによって異なります。
在庫確認はどの程度正確ですか?
エンドポイントは、WHOIS の正式な後継である RDAP にクエリを実行します。 RDAP からの 404 は、ドメインが登録されていないことを意味します。 登録データのある 200 は、取得されたことを意味します。 プレミアム ドメインやレジストリで予約された名前などのエッジ ケースは、通常のチャネルでは登録できない場合でも、利用可能として表示される場合があります。
応答には WHOIS またはレジストラ情報が含まれますか?
はい。 ドメインが登録されると、応答には RDAP エンティティ データから抽出されたレジストラ名が含まれます。 RDAP 応答にレジストラ情報が含まれていない場合、レジストラ フィールドは省略されます。
1 回のリクエストで複数のドメインをチェックできますか?
エンドポイントはリクエストごとに 1 つのドメインを受け入れます。 バッチ チェックの場合は、JavaScript の Promise.all または Python の asyncio.gather を使用して並列リクエストを送信します。 API は、標準のレート制限で問題なく同時リクエストを処理します。

botoiで開発を始めよう

150以上のAPIエンドポイント。検索、テキスト処理、画像生成、開発者ユーティリティに対応。無料プラン、クレジットカード不要。