昨天已經學到怎麼用 API 來獲取從各種網站獲得的資料,像是笑話、明星說的話(Kanye.rest API)、氣象資料等,今天這堂課是要把這些 API 資料放在我們的 web apps 裡面。
API 是自己的伺服器和別人伺服器之間的橋樑,我們透過 API 請求(request)資料,然後對方伺服器回應(Response)資料給自己的伺服器,然後自己的伺服器上再回應給客戶端瀏覽器(Client Browser)。
wsss@wsss-Pro front-end_projects % cd WeatherProject
wsss@wsss-Pro WeatherProject % touch index.html
wsss@wsss-Pro WeatherProject % touch app.js
/* 用 command line 把 .js & .html 建立好
wsss@wsss-Pro WeatherProject % npm init
/* 初始化(initialize)這個專案,執行完後會出現 pakeage.json 檔案,主要是用來紀錄裝了什麼 package
wsss@wsss-Pro WeatherProject % npm i express
/* 使用 express 建立環境
added 57 packages, and audited 58 packages in 1s
7 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
wsss@wsss-Pro WeatherProject % nodemon app.js
/* 使用 nodemon 取代 node,這樣有修改就會自動 reload,不用手動再去重新連一次 node app.js
[nodemon] 2.0.19
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node app.js`
server /* 這個是 console.log 出來的東西
目前 app.js 裡面的東西,先確認 console.log 的內容都有在網頁和 terminal 出現:
const express = require('express');
const app = express();
app.get("/",function(req,res){
res.send('server is up')
})
app.listen(3000, function(){
console.log('server');
})
接著加上 HTTPS request function:
app.get("/",function(req,res){
const url = "https://api.openweathermap.org/data/2.5/forecast?lat=57&lon=-2.15&cnt=3&appid={KEY}"
https.get(url, function(response){
console.log(response);
});
res.send('server is up')
})
然後 terminal 會出現幾個特別需要留意的項目:
status code 200 代表是沒問題
statusCode: 200,
statusMessage: 'OK',
然後我們使用的是 GET method
method: 'GET',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/data/2.5/forecast?lat=57&lon=-2.15&cnt=3&appid=KEY',