概要
- Node.jsにて外部APIを実行してレスポンスをコンソールに出力する方法をまとめる。
情報
- 下記サービスを用いてコードの動作確認を実施した。
使用する外部API
-
Qiitaのユーザー情報を取得するAPIを実行してみる。
-
どうやら
https://qiita.com/api/v2/users/ユーザーid
とすることでユーザーの公開されている基本情報を取得する事ができるっぽい。 -
筆者の場合
https://qiita.com/api/v2/users/miriwo
となる。念の為curlで実行してみたら下記の様に情報が帰ってきたのでこのURLにGETリクエストを送れば情報が取得できるっぽい。curl https://qiita.com/api/v2/users/miriwo {"description":"みらいのじぶんにむけてきじをかいてます\r\nコルチゾール駆動開発","facebook_id":"profile.php?id=100040336992140","followees_count":68,"followers_count":211,"github_login_name":"miriwo0104","id":"miriwo","items_count":1162,"linkedin_id":"","location":"japan","name":"大川 峻","organization":"株式会社アンテク","permanent_id":306417,"profile_image_url":"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/profile-images/1583802366","team_only":false,"twitter_screen_name":"mirimiripc","website_url":"https://miriwo.hatenablog.com/"}
方法
追加モジュールなし
-
下記の様にコードを記載して実行すると情報を取得する事ができる。
node.jsimport https from "https"; const url = "https://qiita.com/api/v2/users/miriwo"; https.get(url, (res) => { let body = ''; console.log("statusCode:", res.statusCode); console.log("headers:", res.headers); res.on("data", function (d) { body += d; }); res.on('end', function () { console.log(body); }) }) .on("error", (e) => { console.error(e); });
-
上記を実行すると下記の様にコンソールに出力される。
statusCode: 200 headers: {cache-control: "max-age=0, private, must-revalidate", content-type: "application/json; charset=utf-8"} {"description":"みらいのじぶんにむけてきじをかいてます\r\nコルチゾール駆動開発","facebook_id":"profile.php?id=100040336992140","followees_count":68,"followers_count":211,"github_login_name":"miriwo0104","id":"miriwo","items_count":1162,"linkedin_id":"","location":"japan","name":"大川 峻","organization":"株式会社アンテク","permanent_id":306417,"profile_image_url":"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/profile-images/1583802366","team_only":false,"twitter_screen_name":"mirimiripc","website_url":"https://miriwo.hatenablog.com/"}
追加モジュールあり
-
この方法は追加パッケージを使うのでWeb上のPlaygroundでは実行できない。
-
下記の様にrequestパッケージをインストールする。
npm install request
-
下記の様に記載する。
node.jsimport request from 'request'; const url = 'https://qiita.com/api/v2/users/miriwo'; const method = 'GET'; const options = { url: url, method: method, }; export const handler = (event) => { request(options, function (error, response, body) { console.log(body); }); };
-
上記を実行すると下記の様に出力される。
{"description":"みらいのじぶんにむけてきじをかいてます\r\nコルチゾール駆動開発","facebook_id":"profile.php?id=100040336992140","followees_count":68,"followers_count":211,"github_login_name":"miriwo0104","id":"miriwo","items_count":1163,"linkedin_id":"","location":"japan","name":"大川 峻","organization":"株式会社アンテク","permanent_id":306417,"profile_image_url":"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/profile-images/1583802366","team_only":false,"twitter_screen_name":"mirimiripc","website_url":"https://miriwo.hatenablog.com/"}
参考文献