前後端的共同語言
- 同樣的,我們不一希望每次都寫醜醜的
feed.rss
檔案,而是希望能夠用更有結構性的東東來編輯資料,並可以直接產生 feed.rss
檔案
- 我們當然可以架起一個本機的資料庫進行編輯,不論是 MySQL 或 MongoDB 都是很好的選擇,只是啟動成本太高(就算可以把安裝、語法、資料結構分成好幾天寫,但這樣偷懶太多)
- 這時候就可以偷懶一點點就好,使用 JSON 來做為資料的儲存格式(後面再作一支 Lambda 去產生新的
feed.rss
)
該怎麼做
- 上次 Day15 已經仔細觀察過別人家的 RSS,並手刻過自己的 RSS Feed
- 這此我們把需要調整的資料摘出來,結構化成 JSON 格式
- JSON 簡單說就是用 {} 包起來,每個欄位都需要 "" 包起來的資料型態
{
"podcast": {
"lastBuildDate": "",
"title": "",
"description": "",
"image": {
"url": "",
"title": "",
"link": ""
},
"link": "",
"author": "",
"copyright": "",
"email": "",
"language": "",
"type": "episodic",
"category_main": "",
"category_sub": "",
"explicit": false,
"episodes": [
{
"title": "",
"description": "",
"link": "",
"audio": "",
"creator": "",
"explicit": false,
"duration": "",
"image": "",
"episode": 1,
"type": "full"
},
{
"title": "",
"description": "",
"link": "",
"audio": "",
"creator": "",
"explicit": false,
"duration": "",
"image": "",
"episode": 2,
"type": "full"
}
]
}
}
- 大概是這個樣子,每次新增一個單集,就是在
episodes
陣列中新增一個物件,並且把相關資訊填入,再修改 lastBuildDate
就可以了
- 其他的事情就交給明天再煩惱吧~ Lambda 會幫助你我的。
其他延伸
- MySQL 在 8.0 之後,已經可以直接使用 JSON 來儲存資料,並且可以直接查詢,這樣就可以直接使用 SQL 語法來查詢資料,非常方便(JSON_EXTRACT...),不過效能可能差一點
- 也有專屬於 JSON 的 Query 語言喔,就是 JMESPATH,在使用 AWS CLI 進行一些搜尋或過濾時,就可能會用到的個東東
- 其實這篇除了是給 Lambda 鋪路,主要是想介紹 JMESPATH 這個可能很少用但酷酷的東西而已
- JMESPATH 還有 filter 的語法,可以像是 SQL 一樣過濾出想要的資料喔
- 更根本的原因是整天都在轉機,加上飛機延誤,正在等待從阿姆斯特丹飛往香港的航班,希望能一路睡到家
外出取材
- 傳說在愛丁堡犯人行刑前,可以到 The Last Drop 去享用人生的最後一杯佳釀再安心上路,然而,最後一晚進去,裡頭人滿為患,大家都很享受,不問生死。