【Node.js / Vercel】你还记得自己编程过的字节数吗?

你记得吗?1

所以,我制作了这样一个东西。
它可以汇总GitHub存储库中的编程语言和其对应的字节数,并将其显示为SVG图形。

bytes

你打算用来做什么呢?

在自学中,将自己的学习量可视化可以提高动力。
尽管学习时间可以,但我想试着用GitHub API获取存储库的字节数,以便将编程字节数也作为动力的一种方式。

放在GitHub的个人资料上,会稍微变得时髦一点。

githubProfile-min.png

※在上述的图片中,还同时使用了以下服务。

 

使用方法

我在GitHub上发布了源代码和使用说明。
您可以将链接URL修改为您的帐户名,并复制到Markdown或HTML中使用。

 

我也试着创建了一个生成链接URL的页面。(我在其中添加了Adsense广告,如果您感到不快,请参考上述的GitHub仓库。)

 

应用技术

    • Vercel Serverless Functions

 

    GitHub GraphQL API

关于Vercel无服务器函数

Vercel是一项托管服务的无服务器功能(直接翻译)。
它是一个很方便的功能,您只需上传服务器程序,无需担心服务器的获取或繁琐的配置,它会自动执行。
它支持Node.js、GO、Python、Ruby,并且我们在这次使用的是Node.js。
还有提供免费选项。

詳細请点击此处

 

关于GitHub GraphQL API

GraphQL API 是一种查询语言,可以通过一次 API 端点访问来获取多个数据。
与 REST API 相比,它的特点是可以通过较少的请求获取所需的数据。

在GitHub上,有一个GraphQL API,可以使用它来获取GitHub用户的存储库信息、星标数、提交数、编程语言数等各种信息。

请点击此处查看详细信息。

 

使用GitHub GraphQL API以Node.js的方式。

通过使用Axios,可以相对容易地在GraphQL API中获取数据。

导入axios库;let hasNextPage = true;
let endCursor;
let resData = [];
const token = “xxxxxxxx”;
const username = “xxxxxx”;
const headers =
{
Authorization: `token ${token}`,
};
const variables =
{
login: username
};

let i = 0;
while (hasNextPage) {
let data =
{
query: `
query userInfo($login: String!) {
user(login: $login) {
repositories(ownerAffiliations: OWNER, isFork: false, first: 100, ${endCursor ? `after: “${endCursor}”` : ”}) {
pageInfo{
hasNextPage
endCursor
}
nodes {
name
languages(first: 10, orderBy: {field: SIZE, direction: DESC}) {
edges {
size
node {
color
name
}
}
}
}
}
}
}
`,
variables,
};

let res = await axios({
url: “https://api.github.com/graphql”,
method: “post”,
headers,
data,
});

hasNextPage = res.data.data.user.repositories.pageInfo.hasNextPage;
endCursor = res.data.data.user.repositories.pageInfo.endCursor;

resData[i] = res.data;
i++;
}

如果您感兴趣的话,可以查看下面的说明。

 

总结一下

请计算一下自己做了多少编程工作,以字节数为单位。

 

中国語中的一个潜在版本:这句话的原始来源是《JoJo的奇妙冒险》中DIO·布兰度所说的一句台词。更多详细信息请参考「这里」的链接。

广告
将在 10 秒后关闭
bannerAds