#99 串接 Dcard API,模仿開發 Dcard App

注意: 目前無法直接連到 API 抓資料

聽說大學生都用 Dcard,為了證明畢業多年的我們還是大學生,就用 Swift 串接 Dcard API,模仿開發類似 Dcard 的 iOS App,證明自己是大學生吧。

Dcard API 格式

https://dcard.tw/_api

不分類的最新文章

  • 不分類最新文章的 JSON 資料

api/ 後接 posts。

https://dcard.tw/_api/posts

透過以上的 JSON 資料,我們可以實現以下畫面的內容,比方標題,大學, like 數量,回應數量,圖片等。

指定文章數量

參數 limit 可指定文章的數量,一次最多 100 筆。

https://www.dcard.tw/_api/posts?limit=數量

範例

https://www.dcard.tw/_api/posts?limit=100

文章的分頁

參數 before 可取得之前的文章。回傳的文章順序是由新到舊,所以下一頁的資料會是之前的文章。

http://dcard.tw/_api/posts/?before=文章id

範例

比方我們取得的最後一篇文章 id 是 232991371,before=232991371 將取得 id 232991371 之前的文章。

  • JSON 裡最後一筆資料
  • 文章 id 232991371 之前的 JSON 資料
https://www.dcard.tw/_api/posts?before=232991371

文章詳細內容

posts/ 後接文章 id。

https://dcard.tw/_api/posts/文章id

範例

  • 文章詳細內容的 JSON 資料

227819459 是 #圖 你/妳還記得棉花糖嗎?的 id。

https://dcard.tw/_api/posts/227819459

content 欄位是文章的內容,值得注意的,文章裡可能有圖片,影片或網頁的 https 連結,我們可以找出文字裡網址出現的地方,將它換成對應的內容。

文章的留言

posts/文章id/ 後接 comments。

http://dcard.tw/_api/posts/文章id/comments

範例

  • 留言的 JSON 資料

227819459 是 #圖 你/妳還記得棉花糖嗎?的 id。

http://dcard.tw/_api/posts/227819459/comments

留言的分頁

參數 after 可取得時間較新的留言。回傳的留言順序是由舊到新,所以下一頁的資料會是較新的留言。

http://dcard.tw/_api/posts/文章id/comments?after=floor數字

範例

比方我們取得的最後一則留言的 floor 是 30,after=30 將取得 floor 30 之後的留言。

  • JSON 資料顯示最後一則留言是 floor 30
  • 留言 floor 30 之後的 JSON 資料
http://dcard.tw/_api/posts/227819459/comments?after=30

透過 after=30 取得的第一篇留言是 floor 31。

不分類的熱門文章

  • 不分類熱門文章的 JSON 資料

將參數 popular 設為 true 可取得熱門文章。

https://dcard.tw/_api/posts?popular=true

看板(話題)清單

  • 看板(話題)清單的 JSON 資料

_api/ 後接 forums。

https://dcard.tw/_api/forums

某個看板(話題)的最新文章

forums/ 後接看板的alias/posts,看板的 alias 可由剛剛取得看板(話題)清單的 API 取得。

https://www.dcard.tw/_api/forums/看板的alias/posts

範例

  • 電影版最新文章的 JSON 資料

取得電影版的最新文章。

https://www.dcard.tw/_api/forums/movie/posts

某個看板(話題)的熱門文章,分頁,數量

前面提到的指定文章數量,文章分頁,熱門文章都可以作用在某個看板(話題)上,只要將網址改成以下網址開頭。

https://www.dcard.tw/_api/forums/看板的alias/

範例

https://www.dcard.tw/_api/forums/movie/posts?popular=true

作品集

--

--

彼得潘的 iOS App Neverland
彼得潘的 100 道 Swift iOS App 謎題

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com