を使用してURL短縮ウェブサイトを作る
9878 ワード
この記事では、私がどのようにして、また、URL短縮ウェブサイトを作ることができますを教えてくれます.私たちが作るつもりの結果をチェックしてください.here .
最初に、このプロジェクトの要件と依存関係について話します.
このプロジェクトではAxios HTTPリクエストを作成するには、(同じようにするためにフェッチAPIのXML要求を使用することができます)とHint.css ヒント(必要ではない).
基本的に上記のような図書館は必要ありませんでした.彼らはここで私たちの仕事をより簡単にし、多くの時間を節約します.
ロジック/ワーキング
我々は、ユーザーが彼のリンクを貼り付けることができる入力タグを追加し、'短縮ボタンをクリックします.そのボタンをクリックすると、Axiosリクエストが解凍されます.しかし、これは簡単です、そして、それはそうです!APIの応答を処理する方法を知っている人、JSONデータと複数のケースのエラーを管理する場合.
初心者として、私はそれぞれのすべてのステップは良い例で上記のカバーしている心配する必要はありません.
まず第一に、我々が必要とするものは、それがよく見えるように良いデザインです.私はすでにこのプロジェクトのウェブサイトを設計しています.
(しかし、デザインが悪いならば、私はデザイナーでなくて残念です)
このデザインでは見出し、サブ見出し、リンクを貼るための入力タグ、変換ボタンと結果を表示するための3つのボックスがあります.
私は出力を表示するためのボタンタグを使用しました(入力タグを使用することもできます).
あなたが欲しいならば、あなたは始めから、または、あなたが沿って続くか、これで若干の時間スタートを保存したいならば、ウェブサイトを作ることができますcodepen (基本的なHTMLとCSS用).
まず最初に、「変換」ボタンをオンにします.
それから、ボタンがクリックされるとき、メッセージはコンソールに現れなければなりません.
ここで、ボタンがクリックされたときにAxiosリクエストを処理します.
ここでaxosを知っていないでください.
Axiosは、使いやすいAPIをスポーツして、ブラウザーとノードの両方で使われることができる人気の、約束ベースのHTTPクライアントです. それは構文は超簡単で初心者フレンドリーです. 基本的なaxos構文
URL短縮のために、我々は無料のURL短縮APIプロバイダーを使用しますSHRTCODE . あなたはウェブサイトを訪問し、より多くの情報のためのドキュメントを読むことができます.
APIを呼び出すための主なリンクです.
このAPIは無料(5 - 10秒)の応答を与えるためにいくつかの時間がかかりますので、ちょうどそれまで待つ.こちらがCodepen Example を呼び出します.
いくつかの時間後に我々はJSONデータの形式で応答を持って、私たちは後で使用するための変数に格納されますか、エラーがキャッチされた場合、我々は単に警告'接続エラーやリンクを確認します.
しかし、私たちは毎回同じリンクを与えたり、新しいリンクを持っているたびにJSを変更することはありません.したがって、入力タグからValue属性でリンクを取得します.
JSONデータの主な情報を取得します.
処理されたURLは
さて、どのようにこのURLを取得するには?
簡単に行う
Ex :
何が残っている私たちは大きなではない画面に表示する必要があります.
まず第一に
私たちは、要素(DIVタグ)をつくって、それからそれから変数にそれを格納する機能を作ります
では、この関数を
短いリンクボックスをクリックすると、CopyLink関数が実行されます.
この関数は次のようになります.
なぜ私は出力を表示するためのボタンタグを使用して、付加価値属性を
(入力タグも使えます).
今では基本的な作業が行われています.here
私はヒントを使用して追加Hint.css (ドキュメントを読んでください.
今それはあなたにこのサイトで追加するにはどのくらいのアニメーションuptoです.
エラー処理については、エラーが発生するような状況を想定することができます
'入力タグが空で、ボタンがクリックされている場合、
あなたが質問をするならば、コメント部で彼らに尋ねてください、そして、このポストがあなたを助けたならば、同じように去るのを忘れないでください.😊
デボンによるポスト.それが助ける望み!
概要
最初に、このプロジェクトの要件と依存関係について話します.
このプロジェクトではAxios HTTPリクエストを作成するには、(同じようにするためにフェッチAPIのXML要求を使用することができます)とHint.css ヒント(必要ではない).
基本的に上記のような図書館は必要ありませんでした.彼らはここで私たちの仕事をより簡単にし、多くの時間を節約します.
ロジック/ワーキング
我々は、ユーザーが彼のリンクを貼り付けることができる入力タグを追加し、'短縮ボタンをクリックします.そのボタンをクリックすると、Axiosリクエストが解凍されます.しかし、これは簡単です、そして、それはそうです!APIの応答を処理する方法を知っている人、JSONデータと複数のケースのエラーを管理する場合.
初心者として、私はそれぞれのすべてのステップは良い例で上記のカバーしている心配する必要はありません.
始める
まず第一に、我々が必要とするものは、それがよく見えるように良いデザインです.私はすでにこのプロジェクトのウェブサイトを設計しています.
(しかし、デザインが悪いならば、私はデザイナーでなくて残念です)
このデザインでは見出し、サブ見出し、リンクを貼るための入力タグ、変換ボタンと結果を表示するための3つのボックスがあります.
私は出力を表示するためのボタンタグを使用しました(入力タグを使用することもできます).
あなたが欲しいならば、あなたは始めから、または、あなたが沿って続くか、これで若干の時間スタートを保存したいならば、ウェブサイトを作ることができますcodepen (基本的なHTMLとCSS用).
onclickイベントの追加
まず最初に、「変換」ボタンをオンにします.
// function name is 'shorten'
<button type="submit" class="shorten-button font-2" onclick="shorten()">
Convert
</button>
次に、この関数をjsで定義します:const shorten = () => {
console.log('button clicked')
}
あなたがCodepenの外で編集しているならば、JSファイルをリンクするのを忘れないでください.それから、ボタンがクリックされるとき、メッセージはコンソールに現れなければなりません.
Axiosでのリクエスト
ここで、ボタンがクリックされたときにAxiosリクエストを処理します.
ここでaxosを知っていないでください.
Axiosは、使いやすいAPIをスポーツして、ブラウザーとノードの両方で使われることができる人気の、約束ベースのHTTPクライアントです.
axios.get('API url')
.then((response) => {
// if the request was Sucessful and no errors were caught
console.log(response)
})
.catch((error) => {
// if errors were there.
console.log(error)
})
Axiosを使用する前に、AxiosパッケージをHTMLファイルにリンクしないでください<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.21.1/axios.min.js" integrity="sha512-bZS47S7sPOxkjU/4Bt0zrhEtWx0y0CRkhEp8IckzK+ltifIIE9EMIMTuT/mEzoIMewUINruDBIR/jJnbguonqQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
API呼び出しの作成
URL短縮のために、我々は無料のURL短縮APIプロバイダーを使用しますSHRTCODE . あなたはウェブサイトを訪問し、より多くの情報のためのドキュメントを読むことができます.
APIを呼び出すための主なリンクです.
https://api.shrtco.de/v2/shorten?url=YOUR_URL
ここで' get 'メソッドのaxiosリクエストへのリンクを追加します.let longUrl = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals'
axios
.get(`https://api.shrtco.de/v2/shorten?url=${longUrl}`)
.then((responseData) => {
console.log(responseData);
})
.catch((err)=> {
alert('Error check your connectivity or link')
})
ここでは、get stringメソッドにURLを追加するためにテンプレート文字列を使用しています.このAPIは無料(5 - 10秒)の応答を与えるためにいくつかの時間がかかりますので、ちょうどそれまで待つ.こちらがCodepen Example を呼び出します.
いくつかの時間後に我々はJSONデータの形式で応答を持って、私たちは後で使用するための変数に格納されますか、エラーがキャッチされた場合、我々は単に警告'接続エラーやリンクを確認します.
しかし、私たちは毎回同じリンクを与えたり、新しいリンクを持っているたびにJSを変更することはありません.したがって、入力タグからValue属性でリンクを取得します.
let longUrl = document.querySelector("#url-box").value;
// we will also declare a variable for later storage of processed url
let shortUrl;
今までのところ、完全なURL、JSONリクエスト、および処理されたデータを扱う.JSONデータの主な情報を取得します.
処理されたURLは
full_short_link
内部はresult
どれがdata
.さて、どのようにこのURLを取得するには?
簡単に行う
resdata.data.result.full_short_link
のリンクを取得するにはthen
. ヒアresdata
APIからの応答データです.Ex :
axios .get(`https://api.shrtco.de/v2/shorten?url=${longUrl}`)
.then((resdata) => {
//storing Processed URL in already declared variable
shortUrl = resdata.data.result.full_short_link;
console.log(shortUrl)
//check console for Processed URL or errors
})
.catch((err) => {
alert("Error check your connectivity or link");
});
現在、仕事の半分はされます!おめでとう.HTMLへのURL表示ボックスの追加
何が残っている私たちは大きなではない画面に表示する必要があります.
まず第一に
私たちは、要素(DIVタグ)をつくって、それからそれから変数にそれを格納する機能を作ります
.innerHtml
プロパティは、このマークアップ(文字列)を渡し、変数を渡しますlongUrl
, shortUrl
) テンプレート文字列の使用` <div class="item">
<div class="long-url">
<div class="title font-1">
Long URL
</div>
<button id="long-url" class="font-2">
${longUrl}
</button>
</div>
<div class="short-url">
<div class="title font-1">
Short URL
</div>
// providing shortUrl variable in value attribute for the copy function⏬
<button id="short-url" class="font-2" value='${shortUrl}' onclick='copyLink(this)'>
${shortUrl}
</button>
</div>
</div> `
// compressed version (spaces and tabs removed) because JS will
// give errors on 'tab' and 'enter'
<div class="item"><div class="long-url"><div class="title font-1">Long URL</div> <button id="long-url" class="font-2"> ${longUrl} </button></div><div class="short-url"><div class="title font-1">Short URL</div> <button id="short-url" class="font-2 hint--bottom" aria-label="Click link to Copy" onclick='copy(this)' value='${shortUrl}' onclick='copyLink(this)'>${shortUrl}</button></div></div>
そして最後に、このタグは親リンクコンテナに追加されます.私は、これがちょっと複雑であるということを知っています、しかし、これはあなたが明確になるのを援助します://Final working:
function addResult(longUrl, shortUrl) {
let parentEle = document.querySelector("#shortened-links");
let data = `<div class="item"><div class="long-url"><div class="title font-1">Long URL</div> <button id="long-url" class="font-2"> ${longUrl} </button></div><div class="short-url"><div class="title font-1">Short URL</div> <button id="short-url" class="font-2" value='${shortUrl}' onclick='copyLink(this)'>${shortUrl}</button></div></div>`;
let newEle = document.createElement("div");
newEle.innerHTML = data;
parentEle.appendChild(newEle);
}
パスしますlongUrl
and shortUrl
パラメータとして.では、この関数を
then
APIからデータを取得するときに実行されるメソッドです..then((resdata) => {
shortUrl = resdata.data.result.full_short_link;
addResult(longUrl, shortUrl);
})
そして、何が起こるかは、このマークアップがHTMLに加えられるとき、データが取り出されて、私たちがすでにCSSで彼らの' Class '属性を整えたので、マークアップが実行されて、処理されますitem
画面上に表示されます.コピーリンク機能
短いリンクボックスをクリックすると、CopyLink関数が実行されます.
この関数は次のようになります.
function copyLink(tag){
let text = tag.value;
// copy link to clipboard
navigator.clipboard.writeText(text);
}
この関数のパラメータはタグで、引数はthis
キーワード.Ex :// usage of this function:
onclick='copyLink(this)'
this
キーワードは引数を通して完全なボタンタグを通過するので、後でCopylink funcでValueプロパティを使用できるようになります.なぜ私は出力を表示するためのボタンタグを使用して、付加価値属性を
shortUrl
タグ.(入力タグも使えます).
今では基本的な作業が行われています.here
私はヒントを使用して追加Hint.css (ドキュメントを読んでください.
エラー処理とアニメーションについて
今それはあなたにこのサイトで追加するにはどのくらいのアニメーションuptoです.
エラー処理については、エラーが発生するような状況を想定することができます
'入力タグが空で、ボタンがクリックされている場合、
// we can do something like this:
if (longUrl){
//if their is value in input tag then only Axios request is sent
axios.get()....
}else{
alert('Enter some data first!!')
}
今、あなたが完全にあなたにアップされるこのプロジェクトでより多くのカスタマイズをしたいならば.あなたが質問をするならば、コメント部で彼らに尋ねてください、そして、このポストがあなたを助けたならば、同じように去るのを忘れないでください.😊
デボンによるポスト.それが助ける望み!
Reference
この問題について(を使用してURL短縮ウェブサイトを作る), 我々は、より多くの情報をここで見つけました https://dev.to/devang/making-a-url-shortener-website-using-axios-4agfテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol