jserver
Rust 編寫的 json 接口和靜態(tài)文件服務(wù)器
靈感來自 typicode 采用 nodejs 編寫的 json-server
30秒零代碼實現(xiàn)模擬全功能 REST 接口(真的)
為前端開發(fā)者傾情打造的快速原型和模擬測試工具。
開始使用
安裝 JServer
cargo build --release
cp target/release/jserver /usr/bin/
創(chuàng)建一個data.json文件,準備一些數(shù)據(jù)
啟動 JServer
jserver
現(xiàn)在你可以直接訪問http://localhost:2901/api/posts/1,獲得數(shù)據(jù)
{ "id": 1, "title": "jserver", "author": "jupiter.gao" }
請求時,你需要知道:
當(dāng)你發(fā)送 POST, PUT, PATCH 或 DELETE 請求時,修改的數(shù)據(jù)將會自動保存到data.json,并發(fā)調(diào)用時保存也是安全的。
請求體應(yīng)該是合法的 JSON 對象或單個值。(比如{"name": "Foobar"}"test string"83.01)
唯一標(biāo)識(默認為id)是不可修改的。PUT 或 PATCH 請求中的任何id值都會被忽略。只有 POST 請求中的id會使用,不允許重復(fù)的id。
POST, PUT 或 PATCH 請求頭應(yīng)該指定Content-Type: application/json。
路由
根據(jù)之前的data.json文件,可以使用以下路由請求接口。
數(shù)組 路由
對象或單值 路由
過濾器
對于數(shù)值,可以使用下列后綴_lt,_lte,_gt,_gte分別表示<,?<=,?>,>=。
對于字符串,使用_like表示包含子字符串,_nlike表示不包含子字符串。
對于數(shù)組,使用_contains表示包含元素,_ncontains表示不包含元素。 對于數(shù)值、字符串和布爾值,使用_ne表示!=。
GET /api/posts?title_like=server
GET /api/posts?id_gt=1&id_lt=3
分頁
使用_page和可選的_size對返回數(shù)據(jù)進行分頁。
GET /api/posts?_page=7
GET /api/posts?_page=7&_size=20
默認每頁返回 20 項,頁號從 1 開始計數(shù)( 0 當(dāng)做 1 處理)。
排序
增加_sort和_order用來排序。
GET /api/posts?_sort=views&_order=asc
多字段排序時,按下面格式請求:
GET /api/posts?_sort=user,views&_order=desc,asc
切片
增加_start和 (_end或_limit)
GET /api/posts?_start=20&_end=30 GET /api/posts?_start=20&_limit=10
響應(yīng)頭中包含X-Total-Count用于表示結(jié)果總數(shù)。
庫文件
GET /db
靜態(tài)文件服務(wù)器
你可以使用 JServer 提供靜態(tài)文件服務(wù),如 HTML, JS 和 CSS 文件,只需將文件放在./public目錄即可 或使用--public-path命令行參數(shù)指定其他的靜態(tài)文件目錄。
命令行參數(shù)
許可證
Apache License 2.0
審核編輯:劉清
-
路由器
+關(guān)注
關(guān)注
22文章
3744瀏覽量
114475 -
REST
+關(guān)注
關(guān)注
0文章
33瀏覽量
9446 -
JSON
+關(guān)注
關(guān)注
0文章
119瀏覽量
7011 -
rust語言
+關(guān)注
關(guān)注
0文章
57瀏覽量
3028
原文標(biāo)題:【大家的項目】JServer:用json文件做數(shù)據(jù)存儲的零代碼API測試服務(wù)器
文章出處:【微信號:Rust語言中文社區(qū),微信公眾號:Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論