第三關

挑戰連結

https://lidemy-http-challenge.herokuapp.com/lv3?token={5566NO1}

JavaScript

const request = require('request')
const BASE_URL = 'https://lidemy-http-challenge.herokuapp.com/api'

request.post(
  { url: `${BASE_URL}/books`,
    form: {
      name: '《大腦喜歡這樣學》',
      ISBN: '9789863594475'
    }
  },
  function (error, response, body) {
    const data = JSON.parse(body)
    console.log(data) 
  }
)

回傳訊息

https://lidemy-http-challenge.herokuapp.com/lv3?token={5566NO1}&id=1989


第四關

挑戰連結

https://lidemy-http-challenge.herokuapp.com/lv4?token={LEarnHOWtoLeArn}

JavaScript

const request = require('request')
const BASE_URL = 'https://lidemy-http-challenge.herokuapp.com/api'

request(
  { 
    url: `${BASE_URL}/books`,
  },
  function (error, response, body) {
    const data = JSON.parse(body)
    for (let i=0; i< data.length; i++) {
      if (data[i].author === '村上春樹') {
        console.log(data[i].id + ' ' + data[i].name)
      }
    }
  }
)

回傳訊息

https://lidemy-http-challenge.herokuapp.com/lv4?token={LEarnHOWtoLeArn}&id=79


第五關

挑戰連結

https://lidemy-http-challenge.herokuapp.com/lv5?token={HarukiMurakami}

題目說明

昨天有個人匆匆忙忙跑過來說他不小心捐錯書了,想要來問可不可以把書拿回去。
跟他溝通過後,我就把他捐過來的書還他了,所以現在要把這本書從系統裡面刪掉才行。

那本書的 id 是 23,你可以幫我刪掉嗎?

JavaScript

const request = require('request')
const process = require('process')
const BASE_URL = 'https://lidemy-http-challenge.herokuapp.com/api'
const arg = process.argv[2]
request(
  { method: 'DELETE',
    url: `${BASE_URL}/books/${arg}`,
  },

  function (error, response, body) {
    const data = JSON.parse(body)
    console.log(data)
  }
)

回傳訊息

{"message":"\n咦...是刪掉了沒錯,但總覺得哪裡怪怪的,算了,先這樣吧!下一關的 token 為 {CHICKENCUTLET}\n"}


第六關

挑戰連結

https://lidemy-http-challenge.herokuapp.com/lv6?token={CHICKENCUTLET}

題目說明

我終於知道上次哪裡怪怪的了!

照理來說要進入系統應該要先登入才對,怎麼沒有登入就可以新增刪除...
這太奇怪了,我已經回報給那邊的工程師了,他們給了我一份新的文件:https://gist.github.com/aszx87410/1e5e5105c1c35197f55c485a88b0328a。

這邊是帳號密碼,你先登入試試看吧,可以呼叫一個 /me 的 endpoint,裡面會給你一個 email。
把 email 放在 query string 上面帶過來,我看看是不是對的。

帳號:admin
密碼:admin123

JavaScript

const request = require('request')
const BASE_URL = 'https://lidemy-http-challenge.herokuapp.com/api/v2'

request(
  { method: 'GET',
        url: `${BASE_URL}/me`,
    headers: {
      'Authorization': 'Basic YWRtaW46YWRtaW4xMjM=',
    }
  },
  (error, response, body) => {
    const data = JSON.parse(body)
    console.log(data) 
  }
)

回傳訊息

{ username: 'admin', email: 'lib@lidemy.com' }

email 放在 query string 上面帶過來

https://lidemy-http-challenge.herokuapp.com/lv6?token={CHICKENCUTLET}&email=lib@lidemy.com


第七關

挑戰連結

https://lidemy-http-challenge.herokuapp.com/lv7?token={SECurityIsImPORTant}

題目說明

那邊的工程師說系統整個修復完成了,剛好昨天我們發現有一本書被偷走了...
這本書我們已經買第五次了,每次都被偷走,看來這本書很熱門啊。
我們要把這本書從系統裡面刪掉,就拜託你了。

對了!記得要用新的系統喔,舊的已經完全廢棄不用了。

書的 id 是 89。

JavaScript

const request = require('request')
const process = require('process') // 這行可以不用寫

const BASE_URL = 'https://lidemy-http-challenge.herokuapp.com/api/v2'
const arg = process.argv[2]

request(
  { method: 'DELETE',
    url: `${BASE_URL}/books/${arg}`,
    headers: {
      'Authorization': 'Basic YWRtaW46YWRtaW4xMjM=',
    }
  },
  (error, response, body) => {
    const data = JSON.parse(body)
    console.log(data) 
  }
)

回傳訊息

{ message: '\n希望下一次進這本書的時候不會再被偷走了。下一關的 token 為 {HsifnAerok}\n' }


參考資源


#程式導師實驗計畫第四期 #前端 #HTTP Challenge







Related Posts

Find the winner of Tic-Tac-Toe

Find the winner of Tic-Tac-Toe

JavaScript 的同步與非同步 - 從 Callback function 到 Promise

JavaScript 的同步與非同步 - 從 Callback function 到 Promise

C語言-運算子

C語言-運算子


Comments