3 个不稳定版本
0.2.5 | 2024 年 7 月 16 日 |
---|---|
0.2.0 | 2024 年 6 月 25 日 |
0.1.0 | 2024 年 6 月 12 日 |
#115 在 HTTP 服务器
每月 127 次下载
11KB
181 行
CAFETERA
描述
这是一个简单的 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