2个不稳定版本
| 0.2.0 | 2021年1月27日 |
|---|---|
| 0.1.0 | 2021年1月21日 |
#788 in HTTP服务器
27KB
444 行
jsonox 🛰 
基于CLI的RESTful JSON服务器+存储,用Rust编写。
特性 🚀
- 通过简单地将JSON POST 到该路由来在任何路由上设置API端点。
- 端点支持使用 GET 获取和使用 DELETE 删除存储的JSON,以及使用 POST 或 PUT。
- JSON数据以
*.json文件的形式存储在json_data目录下。 - 在根路径(
/)下查看所有活动的端点。
[免责声明:此程序专为开发目的设计。在生产环境中使用时请自行承担风险!]
安装 🔧
您可以通过以下3种方式安装:使用预编译的二进制文件、从Crate安装或使用rust工具链手动从源代码构建。为二进制文件和(如果从源代码构建)必要的可执行权限。
预编译的二进制文件
-
从最新的发布版下载适用于您的平台的二进制文件。
二进制文件 平台 jsonox-linux-amd64 64位Linux(Ubuntu、Debian等) jsonox-macos-amd64 64位Mac OS jsonox-win-amd64.exe 64位Windows 7+ jsonox-linux-armv7 ARMv7 Linux:树莓派、Debian、Ubuntu jsonox-linux-armv6 (未测试!)ARMv6 Linux:树莓派Zero、Debian、Ubuntu
从Crate安装
-
使用cargo install
cargo install jsonox
或从源代码构建
-
克隆仓库并运行
cargo build --lock --release -
编译的二进制文件将位于
target/release/jsonox
初始设置(从二进制文件/源代码安装时)
-
设置可执行权限
chmod +x jsonox -
将二进制文件复制到您的
$PATH目录(可选)cp jsonox ~/.local/bin/ #for linux
使用 📡
通过CLI运行服务器,然后设置REST API端点或使用只读模式。
命令行(CLI)
注意:在以下示例中,如果您使用本地二进制文件,可能需要使用./jsonox。
-
简单的带日志的服务器
jsonox -
指定自定义绑定地址
jsonox -b localhost:7000- 使用
-b或--bind-addr - 地址格式:
<IP:PORT>
- 使用
-
禁用日志
jsonox --quiet- 使用
-q或--quiet模式下静音。
- 使用
-
使用 只读 模式
jsonox --read-only- 使用
-r或--read-only用于 只读模式。
- 使用
-
查看帮助和指南
jsonox --help- 使用
-h或--help获取帮助。
- 使用
REST API(正常模式)
以下是如何在以下方式中在 任意路由 上构建 REST API 端点
-
将以下内容 POST 或 PUT 到
/pets/cat{ "cute": true } -
然后,在
/pets/cat上 GET 将收到{ "cute": true } -
类似地,您还可以在
/pets/cat上 DELETE 存储的数据,这将也会收到{ "cute": true } -
上述请求将在
./jsonox_data下的文件设置以下结构- pets/ - cat/ - index.json -
在根端点
/上GET将显示所有活动端点{ "active_paths": ["pets/cat"] }
您也可以通过在 ./jsonox_data 下创建类似结构的文件来设置自己的 API
- pets/
- dog/
- index.json
- cat/
- index.json
- index.json
- toys/
- doll/
- index.json
-
然后,在
/上GET将显示活动端点{ "active_paths": ["pets", "pets/cat", "pets/dog", "toys/doll"] } -
然后您可以在上述端点路径上执行 GET、POST、PUT 和 DELETE。
注意:POST 和 PUT 是可以 互换 的,并且在 此模式 中它们工作得完全一样。这是由于引用的路径是明确指定的。为了在 POST 和 PUT 的情况下允许不同的响应,请考虑使用 只读模式。
只读模式
在此模式下,jsonox 仅读取存储的 json 文件,在 POST/DELETE 的情况下 不创建/删除 它们,与上面解释的正常模式不同。当您只需要模拟 API 响应并且后端不严格遵循 REST 标准时,这很有用。您还可以将 ./jsonox_data 记录在您的版本控制中,以存储 API 响应结构,因为它不会根据此模式中的模拟/测试而更改。
-
首先在
./jsonox_data中创建文件- pets/ - dog/ - get.json - post.json - cat/ - get.json - get.json - delete.json - toys/ - doll/ - get.json - post.json - put.json - delete.json- 在 只读 模式下,我们创建类似
get.json、post.json、put.json和delete.json的文件,而不是index.json。 get.json将包含对该路径的 GET 请求的 响应体。类似地,post.json、put.json和delete.json将分别包含对该路径的 POST、PUT 和 DELETE 请求的 响应体。- 因此,根据上述结构
/pets将只有 GET 和 DELETE。/pets/cat将只有 GET。/pets/dog将只有 GET 和 POST。/toys/doll将具有 GET、POST、PUT 和 DELETE 方法。
- 在 只读 模式下,我们创建类似
-
即使您对一个路径执行 DELETE 操作,您创建的文件和路径也不会被删除。
-
如果您在之间更改模式,并在 正常模式 下执行 DELETE 操作,这将仅删除相应路径下的
index.json文件,而不会删除您创建的其他get.json、post.json等文件。 -
类似于正常模式,在
GET方法上/将显示活动端点。{ "active_paths": ["pets", "pets/cat", "pets/dog", "toys/doll"] }
依赖关系
~25–36MB
~629K SLoC