iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Modern Web

html/css/js的各種操作系列 第 27

[day27]json-server 練習抓取api

  • 分享至 

  • xImage
  •  

今天我們就來自架json-server來練習api串接

正常會使用fetch或是ajax
fetch使用方法推薦這個網站的教學:https://www.oxxostudio.tw/articles/201908/js-fetch.html

由於小弟我的fetch api也不是很熟悉,就小說一下用fetch時有遇到的一些問題

如果你的json格式有問題,會開不了json-server在進行上傳的時候例如PUT也會無法成功上傳
fetch的get可以獲取資料不代表PUT可以成功回傳喔,因你的json格式而異

簡單來說與其說是抓取api會很困難?倒是覺得把檔案格式搞懂還比較困難(對我目前而言

fetch與ajax,ajax也有用過一些,不過我是先使用fetch再用ajax,覺得fetch就是精簡版的ajax,且在格式上fetch我是覺得比較好看懂

開始架設

1.首先先去安裝node.js:https://nodejs.org/zh-tw
Node.js是一個服務器端腳本環境,允許JavaScript在服務器上運行。JSON Server使用Node.js来創建一个本地服務器,以便客戶端應用程序可以模擬與後端API交互。

2.再來安裝npm

    npm install -g json-server

3.新增一個json檔,也可不新增直接打你的檔名,它會自動生成一個預設的檔案如下

  {
  "posts": [
    {
      "id": 1,
      "title": "json-server",
      "author": "typicode"
    }
  ],
  "comments": [
    {
      "id": 1,
      "body": "some comment",
      "postId": 1
    }
  ],
  "profile": {
    "name": "typicode"
  }
}

4.啟動伺服器

    json-server --watch 你的檔名.json

5.關閉伺服器ctrl+c

好了就會有url了

可以隨便改改標頭(posts/comments/profile)測試測試

可能出現的錯誤

然後剛開始用json-server可能會出問題,以下為我遇到的問題,並且修正的方法
報錯內容

json-server : 因為這個系統上已停用指令碼執行,所以無法載入 C:\Users\admin\AppData\Roaming\npm\json-server.ps1 檔案。如需詳細資訊,請 
參閱 about_Execution_Policies,網址為 https:/go.microsoft.com/fwlink/?LinkID=135170。
位於 線路:1 字元:1
+ json-server --watch db.json
+ ~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

這個錯誤是由於 PowerShell 執行政策 (Execution Policy) 導致,解決方法
1.使用系統管理員執行
2.下指令查看目前的執行政策

Get-ExecutionPolicy

如果是這個Restricted或其他無法啟用的類型輸入這串
Set-ExecutionPolicy RemoteSigned
確認更改後就能在輸入
json-server --watch 你的檔名.json

好了今天就這樣啦~~


上一篇
[day26]套件select2
下一篇
[day28] 認識js的setInterval()並做個碼表
系列文
html/css/js的各種操作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言