#web-services #mocking #server #env-var #setting-up #config-file #testing

bin+lib wwsvc-mock

无需设置实例即可测试 SoftENGINE ERP Suite 的模拟服务器!

5 个稳定版本

1.0.4 2024 年 3 月 21 日

#114配置

LGPL-3.0

40KB
798

wwsvc-mock

crate-badge docs-badge codecov-badge

本 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