Skip to content

Latest commit

 

History

History
218 lines (154 loc) · 9.55 KB

week5_複習週.md

File metadata and controls

218 lines (154 loc) · 9.55 KB

[week 5]複習週

前四週心得與解題心得

Command line 的使用

第一次在終端機輸入指令,像是害怕把電腦弄壞似的,總是擔心會輸錯指令;也還記得第一次卡在 vim 介面出不來,最後使用重開大法解決(?)事後也證明其實不需顧慮這麼多,就算手殘打錯字,也只會回傳錯誤訊息而已XD

複習筆記:

Git 的基本操作

在剛學習程式語言時,就看過幾篇文章說 Git 版本控制非常重要!而且剛好現在工作的地方是使用 SVN,雖然平常只有接觸到下載或更新檔案,但實際接觸到也更能夠了解到彼此之間的差異。

到現在邁入第六週,許多指令也已經記在腦海裡,想想還真是不可思議!雖然每次交作業時還是會一邊看步驟來操作,相信多練習幾次就會更加熟記起來!  

複習筆記:

JavaScript 基本語法及程式思維

在迴圈卡住似乎是必經之路,把觀念建立起來之後就是不斷解題練習。有時候還是會發生程式碼雖然幾乎對了,卻因為把值放在大括號錯誤位置,導致無法拿到預期輸出。

再來是了解如何在 LIOJ 上解題,一開始在「如何把值傳入」這件事情陷入苦戰,經歷過無數個 WA;最後還是先看了參考影片,也了解到有時卡住可能是某些觀念還需要釐清,例如值的型態、邊界數字等,都是需要注意的地方。還有透過 eslint 檢查語法,讓自己習慣依照規則去撰寫程式碼,熟悉之後在 commit 時就比較不會跳出一整排錯誤需要修正了。

雖然還有些題目沒做完,會再找空閒時間當作複習慢慢完成。筆記也想再好好整理,並且更新到 coderbridg 上。複習週沒能完成這些事情,之後如果有空檔會再回來補上!

尚須整理 & 補筆記(位移運算子、ES6):

網路基本概念

是前四週挫折感最重的一週,但也難怪畢竟是接觸全新的東西,必須花費更多時間來熟悉。前面有關 HTTP 的概念在火球數也有提到一些,但到了實際串接 API 部分就突然懵懂了。

還記得在寫 week4 的第一項作業時完全沒有頭緒,最後還是先找了參考解答,了解整個流程應該要如何操作。了解之後其實就和課程提到的實戰練習很像,知道不同 Method 的使用時機。還有最一開始的傳紙條故事,其實就和送出請求、回傳資料的概念是一樣的,重新看過文章後才漸漸有所體會。

尚須整理 & 補筆記(curl 指令)


解題心得 - Lidemy HTTP Challenge

謝謝 Huli 製作這麼有趣的小遊戲!其實剛開始對 API 串接還是有點不太了解,透過小遊戲實際操作,漸漸能夠知道自己究竟傳入哪些資訊,要如何才能拿到想要的資訊,或是該如何進行身分驗證等等,也讓自己對有點挫敗的第四週重拾些許信心。目前玩到 Lv10,之後也會想把後面慢慢解完!

start

Lv1

Lv2

Lv3

  • 了解如何透過 node.js 傳入 request,利用 POST 來新增書籍。
  • 這題稍微卡關了一下,因為一開始有點搞不懂 header、body、form 的階層關係,修改過後原來這兩種寫法都能得到 response:{ message: '新增成功', id: '1989' }
// 在 body 以 query string 帶入 name 和 ISBN
  headers: {
    'content-type': 'application/x-www-form-urlencoded',
  },
  body: 'name=《大腦喜歡這樣學》&ISBN=9789863594475'
// 在 form 帶入 name 和 ISBN
headers: {
  'content-type': 'application/x-www-form-urlencoded',
},
form: {
 name: '《大腦喜歡這樣學》',
 ISBN: '9789863594475'
}

Lv4

Lv5

  • 了解如何透過 DELETE 來獲得刪除書籍。
  • 得到的 response 好像讓人有點不安(?)下一題才知道是因為沒有登入就能夠新增刪除,缺少了身分驗證。
{
  message: '\n咦...是刪掉了沒錯,但總覺得哪裡怪怪的,算了,先這樣吧!下一關的 token 為 {CHICKENCUTLET}\n'
}

Lv6

  • 了解如何將 http basic authorization 帶入 Header 進行身分驗證。
  • 這關有稍微卡住,一開始是驗證碼少加 Basic,然後又卡一陣子找不到錯在哪裡,才發現原來是 圖書館資訊系統 API v2 接點最後有多加 /v2,真是魔鬼藏在細節裡,諸此類小地方都需要更加注意!
  method: 'GET',
  url: `https://lidemy-http-challenge.herokuapp.com/api/v2/me`,
  headers: {
    'Authorization': 'Basic YWRtaW46YWRtaW4xMjM=',
  },

Lv7

  • 和 Lv5 類似。了解如何透過 DELETE 刪除書籍,但要在 Header 多加上身分驗證。
  method: 'DELETE',
  url: `https://lidemy-http-challenge.herokuapp.com/api/v2/books/89`,
  headers: {
    'Authorization': 'Basic YWRtaW46YWRtaW4xMjM=',
  },

Lv8

  • 了解如何透過 GET 查詢書籍,再以 PATCH 更改書籍資訊。
  method: 'GET',
  url: `https://lidemy-http-challenge.herokuapp.com/api/v2/books`,
  headers: {
    'Authorization': 'Basic YWRtaW46YWRtaW4xMjM=',
  },
  • 找到與目標相符的資料:{id: 72, name: '日日好日:茶道教我的幸福15味【電影書腰版】', author: '森下典子', ISBN: '9981835427'},,一開始還沒看清楚作者名字是四個字,幸好最後檢查有發現到!

  • 把 ISBN 最後一碼改成 3,和 Lv3 使用的 POST 一樣要在 Header 加上 content type:

  method: 'PATCH',
  url: `https://lidemy-http-challenge.herokuapp.com/api/v2/books/72`,
  headers: {
    'Authorization': 'Basic YWRtaW46YWRtaW4xMjM=',
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: {
    name: '日日好日:茶道教我的幸福15味【電影書腰版】',
    ISBN: '9981835423'
  },

Lv9

  method: 'GET',
  url: `https://lidemy-http-challenge.herokuapp.com/api/v2/sys_info`,
  headers: {
    'Authorization': 'Basic YWRtaW46YWRtaW4xMjM=',
    'User-Agent':'MSIE 6.0',
    'X-Library-Number': '20'
  },
  • 得到回傳值:
{
  message: 'success',
  version: '1A4938Jl7',
  owner: 'lib',
  createdAt: '121290329301'
}

Lv10