Denoでの利用で勉強中メモです。
Fetch APIを使うサンプルとして前に書いた記事をベースにTypeScript版にしてみました。
今回は/items/:itemid
のAPIなので記事の情報取得ですね。
const BASE_URL = `https://qiita.com/api/v2`;
const getQiita = async (url: string): Promise<string | null> => {
const ITEM_ID = url.split(`/items/`)[1]; //ITEMIDを抽出
const ENDPOINT = `${BASE_URL}/items/${ITEM_ID}`;
try {
const options = {
headers:{
'Authorization': `Bearer <トークン>`,
'Content-Type': 'application/json'
}
}
const jsonResponse = await fetch(ENDPOINT, options);
const jsonData = await jsonResponse.json();
// console.log(jsonData);
return jsonData.page_views_count;
} catch (error) {
throw new Error(error);
}
}
// const url = `https://qiita.com/n0bisuke/items/b0cf0c416aa8e46bdb1b`;
const url = `https://qiita.com/atoms50/items/69c79fe8e38487e31825`;
const pv = await getQiita(url);
console.log(pv);
PVの値は自分じゃないと取れないので注意試してみる
実行するとPVが取れます。
ただPVの値はトークン認証しているユーザー(この場合だと自分)の記事のみ見れるみたいです。
- 自身の記事の場合
$ deno run --allow-net qiita.ts
863
- よしだくんの記事の場合
$ deno run --allow-net qiita.ts
null
他にも他人の記事だと取れないパラメータがあるかもしれないですね。
参考