5 个稳定版本
1.0.4 | 2024 年 3 月 21 日 |
---|
#114 在 配置
40KB
798 行
wwsvc-mock
本 crate 的目标是提供一个用于 SoftENGINE ERP Suite 服务的模拟服务器。
它是一个双用途 crate,提供库和二进制文件。库暴露了路由器,可用于将其集成到 axum-test
服务器或自定义 axum 服务器中。二进制文件是一个独立的服务器。
库和二进制文件都可以通过环境变量或配置文件进行大量配置。
安装
作为库
cargo add wwsvc-mock
作为二进制文件
cargo install wwsvc-mock
用法
使用环境变量
使用环境变量配置服务器非常麻烦,但可能。
以下是一个示例 .env 文件
APP__SERVER__BIND_ADDRESS=0.0.0.0:3000
APP__MOCK_RESOURCES=[{data_source={type=Empty},function=ARTIKEL,method=INSERT,revision=1,parameters={ARTNR=MeinArtikel}}]
使用配置文件
相同的配置也可以在配置文件中表示
[server]
bind_address = "0.0.0.0:3000"
[[mock_resources]]
data_source.type = "Empty"
function = "ARTIKEL"
method = "INSERT"
revision = 1
parameters.ARTNR = "MeinArtikel"
这两种配置服务器的方式可以结合使用。环境变量将优先于配置文件。在这种情况下,模拟服务器将允许您注册和注销服务通行证,并使用给定的参数调用 ARTIKEL.INSERT
函数。使用任何其他函数、方法或参数将导致以原始 SoftENGINE ERP Suite 服务的响应风格返回 404 响应。
您还会注意到我们没有指定任何凭据,如供应商或应用哈希。这将导致服务器为您生成一组随机凭据。如果您使用二进制文件运行服务器,您将在日志中看到生成的凭据。如果您使用库,生成配置结构体也将返回生成的凭据。
模拟数据源
整个模拟服务器不模拟任何数据源。相反,您需要提供您想要模拟的函数、方法和参数的组合,以及端点应返回的数据。理想情况下,您返回“最佳情况”场景,但您也可以返回错误响应。
目前无法抖动响应时间或返回随机错误。这是一个计划中的功能。
运行服务器
您可以使用构建的二进制文件运行服务器
cargo build --release
target/release/wwsvc-mock
或从此仓库
cargo run --release
或使用 Docker
docker run --rm -p 3000:3000 -e APP__SERVER__BIND_ADDRESS=0.0.0.0:3000 -e RUST_LOG=info ghcr.io/cozygalvinism/wwsvc-mock
限制
目前存在一些限制
- 如上所述,无法抖动响应时间或返回随机错误。
- 服务器不支持任何类型的文件上传。
- 这是一个计划中的功能。
- 服务器目前不验证您使用的HTTP动词,尽管它不需要这样做。
依赖项
约15-27MB
约462K SLoC