成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSON Server:快速搭建你自己的簡易 REST API 服務

開發 前端
本文向大家介紹 JSON Sever 這一個基于 JSON 文件幫助你快速搭建 REST API 服務的工具庫。JSON Sever 的安裝和使用起來起來非常方便,數據的增刪改查都是通過修改背后的 db.json 文件內容實現的,非常適合 Mock 數據服務的搭建。

JSON Sever 簡介

JSON Sever[1] 是一個可以快速幫助你建設一個基于 JSON 文件的數據庫服務。

安裝完 json-server 依賴后,你只需要提供一個 db.json 文件,就能擁有一個功能完善的 REST API 資源服務。非常適合 Mock 數據服務的搭建和處理工作。目前已在 Github 上收獲超 72.2k 顆星了。

圖片圖片

著名的 JSONPlaceholder 模擬服務[2]就是基于 JSON Sever 搭建而成的免費服務。

圖片圖片

下面就來介紹。

項目初始化和啟動

初始化項目:

mkdir json-server-demo
cd mkdir json-server-demo
pnpm init

安裝 My JSON Server 服務器,并使用 VS Code 打開:

pnpm install json-server
code .

項目中添加數據庫文件 db.json:

{
  "posts": [
    {
      "id": "1",
      "title": "a title",
      "views": 100
    },
    {
      "id": "2",
      "title": "another title",
      "views": 200
    }
  ],
  "comments": [
    {
      "id": "1",
      "text": "a comment about post 1",
      "postId": "1"
    },
    {
      "id": "2",
      "text": "another comment about post 1",
      "postId": "1"
    }
  ],
  "profile": {
    "name": "typicode"
  }
}

這里我們定義了 3 個終端資源:posts、comments 和 profile,你可以把這 3 個資源簡單理解成是關系型數據庫里的 3 個表格。

編輯 package.json 添加腳本,啟動項目:

{
  "scripts": {
    "server": "json-server db.json"
  },
}
npm run server

終端輸出:

圖片圖片

可以看到 db.json 中的 3 個終端資源分別映射成了 3 個終端路由:/posts、/comments、/profile。接下來,我們就可以針對這 3 個終端路由進行 CURL(增刪改查了)了。

增刪改查 /posts 路由

3 個終端資源我們就不全部舉例了,就以 /posts 為例。攜帶 posts 數據的 db.json 在 json-server 啟動后,開箱就會提供以下路由的支持:

# 獲取全部資源
GET    /posts
# 獲取某個資源
GET    /posts/:id
# 創建資源
POST   /posts
# 更新資源(全量)
PUT    /posts/:id
# 更新資源(局部)
PATCH  /posts/:id
# 刪除資源
DELETE /posts/:id

下面在終端使用 curl 測試。

1、獲取資源(全部)

curl http://localhost:3000/posts

[
  {
    "id": "1",
    "title": "a title",
    "views": 100
  },
  {
    "id": "2",
    "title": "another title",
    "views": 200
  }
]

2、獲取資源(某一個)

curl http://localhost:3000/posts/1

{
  "id": "1",
  "title": "a title",
  "views": 100
}

3、創建資源

curl -X POST -H "Content-Type: application/json" -d "{\"id\":\"3\", \"title\":\"foo\", \"views\": 0}" http://localhost:3000/posts

發現,db.json 中增加了 1 條 id 為 3 的記錄。

圖片圖片

注意,如果重復執行以上 curl 創建指令會在 db.json 中增加 2 條同樣的記錄。JSON Sever 并不會幫我們做校驗處理,所以在創建資源是要保證你的數據 id 的唯一性。

4、更新資源(全量)

curl -X PUT -H "Content-Type: application/json; charset=UTF-8" -d "{\"title\": \"foo\", \"views\": 101}" http://localhost:3000/posts/1

發現,db.json 中 id 為 1 的記錄被更新了。

圖片圖片

5、更新資源(局部)

curl -X PATCH -H "Content-Type: application/json; charset=UTF-8" -d "{\"title\": \"bar\"}" http://localhost:3000/posts/1

db.json 中 id 為 1 的記錄被更新了。

圖片圖片

6、刪除資源

curl -X DELETE http:/localhost:3000/posts/1

db.json 中 id 為 1 的記錄被刪除了。

圖片圖片

高級用法

當然,除了簡單的增刪改查之外。這些資源還支持過濾、分頁等功能。

1、過濾

比如根據用戶 id 過濾:

curl -X GET http://localhost:3000/posts?id=3

[
  {
    "id": "3",
    "title": "foo",
    "views": 0
  }
]

甚至支持范圍過濾:

curl -X GET http://localhost:3000/posts?views_gt=3

[
  {
    "id": "2",
    "title": "another title",
    "views": 200
  }
]

_gt 表示“great than”,也就是 > 的意思。?views_gt=3 就表示過濾出閱讀量過 3 的 post。

全部的過濾符號包括:

  • _gt → >
  • _lt → <
  • _lte → <=
  • _gte → >=
  • _ne → !=

2、分頁

JSON Server 還支持以 page、per_page(默認 10) 參數的形式查詢分頁數據。

瀏覽器訪問 http://localhost:3000/posts?_page=1&_per_page=1

查看效果:

圖片圖片

如此,我們便查詢到了第 1 頁數據。返回的分頁數據放在 data 中,數據中總共有 2 條數據(items),按照每頁一條數據總共 2 頁數據(pages),下一頁是第 2 頁(next)。

其他更多用法[3],大家可以參照官方倉庫的 README 進行查看,常用功能就是以上這些了。

總結

本文向大家介紹 JSON Sever 這一個基于 JSON 文件幫助你快速搭建 REST API 服務的工具庫。

JSON Sever 的安裝和使用起來起來非常方便,數據的增刪改查都是通過修改背后的 db.json 文件內容實現的,非常適合 Mock 數據服務的搭建。

當然,我甚至認為,一定程度上它也可以作為一個小型、簡易的數據存儲使用。

好了,希望本文的介紹會對你的工作或者生活有所幫助,感謝你的閱讀,再見。

參考資料

[1]JSON Sever: https://github.com/typicode/json-server

[2]JSONPlaceholder 模擬服務: https://jsonplaceholder.typicode.com/guide/

[3]其他更多用法: https://github.com/typicode/json-server?tab=readme-ov-file#params

責任編輯:武曉燕 來源: 寫代碼的寶哥
相關推薦

2023-03-31 08:25:08

零代碼開源項目

2024-06-12 00:00:00

2023-08-01 07:25:38

Expresso框架API

2016-09-23 20:04:26

2023-11-19 20:16:43

RESTAPIPOST

2024-11-29 08:53:46

2009-09-27 14:58:47

Python HTTP

2022-10-09 07:21:21

wordpress數據庫mysql

2022-07-26 07:05:50

PythonAPI語法

2013-10-14 09:29:20

RESTJSONJava

2012-02-16 11:32:18

ibmdw

2012-02-24 15:28:33

ibmdw

2022-02-10 23:38:23

API架構設計

2024-10-16 09:49:18

2014-03-06 09:23:19

Git服務器Github

2024-01-23 09:08:47

軟件架構REST

2012-06-27 09:47:05

ibmdw

2022-08-12 07:39:30

數字化集成微服務

2022-01-05 12:09:16

異步隊列集群

2021-02-05 05:29:51

服務器GitGogs
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品一区二区三区 | 亚洲精品一区二区三区四区高清 | 亚洲午夜一区二区 | 日本a视频 | 97国产一区二区精品久久呦 | 不卡视频一区二区三区 | 毛片网站在线观看视频 | 一区二区三区网站 | 成人午夜激情 | 九九久久这里只有精品 | 天天色综| 日韩二三区 | 成人在线免费观看 | 亚洲精品久久久久久久久久久久久 | 日本精品在线一区 | 国产清纯白嫩初高生视频在线观看 | 中文字幕高清av | 亚洲一区二区三区在线 | 久久久久久久一区 | 成人激情视频网 | 亚洲男人天堂av | 亚洲一区二区三区在线播放 | 国产成人av在线播放 | 在线播放国产一区二区三区 | 午夜视频免费在线观看 | 91视频在线观看 | 中文字幕一区二区视频 | 玖玖在线精品 | 91麻豆精品国产91久久久更新资源速度超快 | 国产美女精品视频 | 韩日精品一区 | 免费精品视频 | 黄色一级大片在线免费看产 | 久草中文在线 | 中文字幕一区二区三区精彩视频 | 国产日韩精品一区二区 | 久久99网 | 精品国产一区二区三区久久狼黑人 | 国产剧情一区二区三区 | 国产精品a久久久久 | 国产精品免费大片 |