#http-response #mocking #testing #toml-config #purpose #path

app cafetera

简单的 HTTP 模拟服务器

3 个不稳定版本

0.2.5 2024 年 7 月 16 日
0.2.0 2024 年 6 月 25 日
0.1.0 2024 年 6 月 12 日

#115HTTP 服务器

Download history 113/week @ 2024-06-07 25/week @ 2024-06-14 129/week @ 2024-06-21 11/week @ 2024-06-28 98/week @ 2024-07-12 23/week @ 2024-07-19 6/week @ 2024-07-26

每月 127 次下载

MIT 许可证

11KB
181

CAFETERA

Test

描述

这是一个简单的 HTTP 模拟服务器,用于测试目的,用于模拟 API 端点。它允许您通过 TOML 配置文件定义针对不同 HTTP 方法和路由的自定义响应。

需求

  • Rust

设置

要运行服务器,请按照以下步骤操作

将仓库克隆到您的本地计算机。请确保已安装 Rust。如果没有,请使用 rustup 安装 Rust。导航到项目的根目录。使用 Cargo 构建项目

cargo build

使用以下命令运行服务器,将端口号替换为您想要的端口号,将 <config_path> 替换为您的配置 JSON 文件路径

cargo run <port> <config_path>

或者

CAFETERA <port> <config_path>

配置

服务器的行为由一个 JSON 配置文件定义。下面是配置文件结构的示例

[[endpoints.GET]]
path = "/health"
status = 200
body = "API is up and running"

[[endpoints.GET]]
path = "/users"
status = 200
body = '''
[
  {
    "id": "{{rand}}", <-- this will be replaced with a random number
    "name": "{{arg.name}}",
    "email": "",
    "path": "{{path}}"
  }
]
'''

[[endpoints.GET]]
path = "/users/{{name}}"
status = 200
body = '''
{
  "id": 1,
  "name": "{{name}}",
  "email": ""
}
'''

[[endpoints.GET]]
path = "/users/{{name}}/{{id}}"
status = 200
body = '''
{
  "id": "{{id}}",
  "name": "{{name}}",
  "email": ""
}
'''

[[endpoints.POST]]
path = "/users"
status = 201
body = '''
{
  "id": "{{rand}}",
  "name": "Jane Doe",
  "email": ""
}
'''

用法

启动服务器后,它将在指定的端口上监听 HTTP 请求。服务器将匹配配置文件中定义的路径与传入请求,并返回相应的状态码和正文。

可用的通配符变量

  • {{path}}: 请求的路径
  • {{query}}: 请求的查询字符串
  • {{rand}}: 介于 0 和 100 之间的随机数
  • {{arg.<name>}}: 指定名称的查询参数的值
  • {{header.<name>}}: 指定名称的头部的值
  • {{<name>}}: 指定索引的路径参数的值

贡献

欢迎贡献。请随时提交拉取请求或打开问题来提出改进或添加新功能的建议。

依赖项

~1.5–2.4MB
~52K SLoC