GitHubのDeveloper Settingsより、Oauth AppsでNew Auth Appを作成してClient IDとClient Secretを取得しました。これで、PostmanにGitHubのユーザーネームを入力したURLを入力すれば、GitHub APIよりGitHubユーザー(今回の場合は私自身)のRepoの情報が取得できるようになりました。
今まで自分が作成したレポジトリの情報などがPostmanで全てチェックできるのはAPIのおかげです。APIについてもさらに知識を深めたくなりました。
本日のコード(api/profile.jsにGitHubのAPIを取得するrouteを作成)
// @route GET api/profile/github/:username
// @desc Get user repos from Github
// @access Public
router.get("/github/:username", (req, res) => {
try {
const options = {
uri: `https://api.github.com/users/${
req.params.username
}/repos?per_page=5&sort=created:asc&client_id=${config.get(
"githubClientId"
)}&client_secret=${config.get("githubSecret")}`,
method: "GET",
headers: { "user-agent": "node.js" }
};
request(options, (error, response, body) => {
if (error) console.error(error);
if (response.statusCode !== 200) {
return res.status(404).json({ msg: "No Github profile found" });
}
res.json(JSON.parse(body));
});
} catch (err) {
console.error(err.message);
res.status(500).send("Server Error");
}
});
これだけでは動かないので、config/default.jsonに以下の情報も追加しました。
{
"mongoURI": "",
"jwtSecret": "secret",
"githubClientId": "",
"githubSecret": ""
}
空白になっているところにGitHubのOauthで発行されたCliend IDとClient Secretを入力すれば完成。
Postmanのcollectionの一部の不具合の原因判明
先日から何度か書いていたPostmanでのデータの入力・変更・取得が一部おかしいという件についてですが、原因が判明しました。おそらく、profileFieldのIが一つ大文字になっていたからです。
というわけで、今回もtypoでした。
Postmanのcollectionについては、全て設定見直し予定なのですが、今日は3つ見直し完了しました。全て正常にしてから次のセクションでPOST API Routesの作成に入りたいと思います。
現在使用している教材と現在の状況:学習時間3.0時間
Udemy:MERN Stack Front To Back: Full Stack React, Redux & Node.js by Brad Traversy
Sec4: Profile API Routes
-Lec23 Get Github Repos For Profile
進捗状況:32%
学習時間3.0時間
~本日は休みにしている教材~
Udemy:The Complete Web Developer: Zero to Mastery by Andrei Neagoie
進捗状況: 92%
-参考にしたページ-
「express実践入門」小川充 (GitHub)