[REST] JSON 格式和 RESTful API

在建立一個簡易的 JSON Server 之後,
我們可以來簡單的測試一下其功能,
在開始之前, 我們先介紹一下 JSON 以及 RESTful API 的一些基本概念,

RESTful (REpresentational State Transfer) API 的名稱雖然有點難以解釋,
不過可以簡單的想像這是一個建立在 HTTP 協定上的一種通訊規格,
其特色就是透過 URL (網址, IP 和 port 的組合) 對資源進行操作,
而所謂操作對應到 HTTP 協定中的: GET, POST, PUT, DELETE,

GET 為查詢 JSON 資源, 只需要填入正確的 URL, 例如:
http://localhost:3000/posts/1, 就是查詢 id 為 1 的 posts JSON 內容,
POST 為發布一個新的 JSON 資源,  PUT 為更新一則 JSON 資源,
至於 DELETE 則是刪除某一則 JSON 資源,
這部分, 我們會在下一篇文章中利用 postman 來作操作範例,

在一般的網頁瀏覽中, HTTP 承載的內容格式為 HTML (以靜態網頁為例),
並透過瀏覽器將 HTML 的資源轉成圖文並茂的網頁內容,
但在 RESTful API 中, 承載的內容則為 JSON 或是 XML,
其共通之處在於透過 key-value 的形式儲存資料,
而其中, JSON 又因為其輕量簡便的特性, 而受到廣泛的使用.

在上一篇文章中, 我們以
json-server db.json
開啟一個 JSON Server, 其中 db.json 就隱含了 JSON 的格式,
我們可以將此文件打開, 內容如下:
{
  "posts": [
    {
      "id": 1,
      "title": "json-server",
      "author": "typicode"
    }
  ],
  "comments": [
    {
      "id": 1,
      "body": "some comment",
      "postId": 1
    }
  ],
  "profile": {
    "name": "typicode"
  }
}
打開 JSON Server 之後, 網頁的介面如下:

我們可以看到 Resource 部分有三個項目: posts, comments, profile
posts 和 comments 上標都是 1x, profile 上標則是 object,
兩者的差別在於 object 只會存在一個, 當有 POST 來時, 只會複寫,
至於 1x 代表 array, 則會存下不同的 JSON 條目.

在宣告 (db.json) 時, 就默認了此處的設定, 在 JSON 中:
物件 (object) 用大括號 { }, 陣列 (array) 用中括號 [ ], 物件用逗號隔開,
因此, 我們可以用下圖來了解 db.json 的宣告格式:

留言

熱門文章

LTE筆記: RSRP, RSSI and RSRQ

[WiFi] WiFi 網路的識別: BSS, ESS, SSID, ESSID, BSSID

LTE筆記: 波束成型 (beamforming) 和天線陣列