NTUCSIECouncil / CouncilWeb

0 stars 0 forks source link

[Practice] 0x04 - Use router and create API #5

Open woolninesun opened 6 years ago

woolninesun commented 6 years ago

可以查詢關鍵字 Express router,和本次練習有關


做完 0x01 - Node && npm 的練習後,接者練習如何建構 Express router,先建立一個 Express project

$ ./node_modules/.bin/express --view=ejs --css=sass practice0x04x09

在 practice0x04x09 完成以下練習:

  1. 建立一個規則為 Get /events/:year/:month/:day 的路由
    • :year/:month/:day 皆為整數,若為非整數回傳 error message
    • :year/:month/:day 日期需合理,若不合理也回傳 error message
  2. 若成功(status code 200)回傳訊息,訊息格式必須為 json
    • Need to include follow headers:
      Content-Type →application/json; charset=utf-8
  3. json error message 訊息自行定義
  4. 若是 /events/2018/2/23 的 query,請回傳
    • Body:
      [
      "完成 Use router and create API 練習!!",
      "在 repo 上寫好 project 項目"
      ]

NOTE: 參數驗證失敗的 error message 也是屬於成功(200),要分清楚 status code 和 API 狀態的差別。 NOTE: API 測試工具我推薦使用 postman,用瀏覽器也可以,不過其他的 HTTP Verb 會比較難測試。

s123unny commented 6 years ago

http://140.112.30.39:3000/events/:year/:month/:day (放工作站背景跑應該可以吧??

woolninesun commented 6 years ago

@s123unny response headers 要加上 content-type 喔 `/events/2018/2/01 month 會變成 undefine,要檢查到,確保輸出不會輸出到 undefine

woolninesun commented 6 years ago

@s123unny content-type 的部份我看錯了,有加上~

tsunghan-wu commented 6 years ago

@WooLNinesun http://140.112.30.33:9487/event/:year/:month/:day 差不多先這樣><

woolninesun commented 6 years ago

@patrickwu2

  1. 日期不合理,和格式錯誤(非整數)兩個的 error msg 盡量說明清楚,都是 fail debug 不好弄,不是好習慣
  2. 然後其實是 events ,找一個 s ,不過這不重要~
tsunghan-wu commented 6 years ago

http://140.112.30.33:9487/events/:year/:month/:day 改好了~

woolninesun commented 6 years ago

@patrickwu2

  1. 都 ok 了,但是 對於格式錯誤有一點題目忘記說明,少一個 arg 也要回傳 error msg 例如 GET: /events/2018/2 少一個 date 參數,就要回傳相應 API fail msg 提示是可以用 * 接下所有不符合前面 route rule 的 request。
tsunghan-wu commented 6 years ago

改好了~

woolninesun commented 6 years ago

@patrickwu2 不錯~完成了一個合格的 API ( 安全方面的問題,未來會在介紹個,暫時不管 )