feat: mock配置迁移至JSON格式并修复body匹配

- 将mock配置从YAML格式迁移到JSON格式
- 修复JSON字符串格式body匹配失败问题
- 添加MCP功能模块
- 更新mock-spec.md规范文档

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-29 09:43:11 +08:00
parent 061ceff4b8
commit d364307131
42 changed files with 1509 additions and 893 deletions

View File

@@ -0,0 +1,26 @@
{
"name": "user_login_001",
"request": {
"path": "/v1/auth/login",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"host": "127.0.0.1:8080"
},
"body": {
"username": "user001",
"password": "password123"
}
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"body": "{\"code\":0,\"message\":\"登录成功\",\"data\":{\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6\",\"userId\":10001,\"username\":\"user001\",\"role\":\"administrator\"}}"
},
"settings": {
"delay_ms": 2000
}
}

View File

@@ -0,0 +1,26 @@
{
"name": "user_login_002",
"request": {
"path": "/v1/auth/login",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"host": "127.0.0.1:8080"
},
"body": {
"username": "user002",
"password": "password123"
}
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"body": "{\"code\":0,\"message\":\"登录成功\",\"data\":{\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6\",\"userId\":10002,\"username\":\"user002\",\"role\":\"administrator\"}}"
},
"settings": {
"delay_ms": 2000
}
}

View File

@@ -0,0 +1,26 @@
{
"name": "user_login_003",
"request": {
"path": "/v1/auth/login",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"host": "127.0.0.1:8080"
},
"body": {
"username": "user003",
"password": "password123"
}
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"body": "{\"code\":0,\"message\":\"登录成功\",\"data\":{\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6\",\"userId\":10003,\"username\":\"user003\",\"role\":\"administrator\"}}"
},
"settings": {
"delay_ms": 2000
}
}

View File

@@ -0,0 +1,23 @@
{
"name": "user_login_004",
"request": {
"path": "/v1/auth/login",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"host": "127.0.0.1:8080"
},
"body": {
"username": "user004",
"password": "password123"
}
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"body": "{\"code\":0,\"message\":\"登录成功\",\"data\":{\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6\",\"userId\":10004,\"username\":\"user004\",\"role\":\"administrator\"}}"
}
}

View File

@@ -0,0 +1,23 @@
{
"name": "user_login_005",
"request": {
"path": "/v1/auth/login",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"host": "127.0.0.1:8080"
},
"body": {
"username": "user005",
"password": "password123"
}
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"body": "{\"code\":0,\"message\":\"登录成功\",\"data\":{\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6\",\"userId\":10005,\"username\":\"user005\",\"role\":\"administrator\"}}"
}
}

View File

@@ -1,118 +0,0 @@
# 用户登录 - JSON 格式
- name: "user_login_002"
request:
path: "/v1/auth/login"
method: "POST"
headers:
Content-Type: "application/json"
Authorization: "eyJhbGciOiJIUzI1NiIsInR5cCI6"
host: "127.0.0.1:8080"
body: >
{
"username": "user002",
"password": "password123"
}
response:
status: 200
headers:
Content-Type: "application/json"
body: |
{
"code": 0,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"userId": 10002,
"username": "user002",
"role": "administrator"
}
}
settings:
delay_ms: 2000 # 模拟真实网络延迟
- name: "user_login_003"
request:
path: "/v1/auth/login"
method: "POST"
headers:
Content-Type: "application/json"
Authorization: "eyJhbGciOiJIUzI1NiIsInR5cCI6"
host: "127.0.0.1:8080"
body: |
{
"username": "user003",
"password": "password123"
}
response:
status: 200
headers:
Content-Type: "application/json"
body: >
{
"code": 0,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"userId": 10003,
"username": "user003",
"role": "administrator"
}
}
settings:
delay_ms: 2000 # 模拟真实网络延迟
- name: "user_login_004"
request:
path: "/v1/auth/login"
method: "POST"
headers:
Content-Type: "application/json"
Authorization: "eyJhbGciOiJIUzI1NiIsInR5cCI6"
host: "127.0.0.1:8080"
body: |
{
"username": "user004",
"password": "password123"
}
response:
status: 200
headers:
Content-Type: "application/json"
body: |
{
"code": 0,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"userId": 10004,
"username": "user004",
"role": "administrator"
}
}
- name: "user_login_005"
request:
path: "/v1/auth/login"
method: "POST"
headers:
Content-Type: "application/json"
Authorization: "eyJhbGciOiJIUzI1NiIsInR5cCI6"
host: "127.0.0.1:8080"
body:
username: "user005"
password: "password123"
response:
status: 200
headers:
Content-Type: "application/json"
body: |
{
"code": 0,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"userId": 10005,
"username": "user005",
"role": "administrator"
}
}

View File

@@ -0,0 +1,22 @@
{
"name": "user_register",
"request": {
"method": "POST",
"path": "/v1/auth/register",
"headers": {
"Content-Type": "application/json"
},
"body": {
"username": "newuser",
"password": "newpass123",
"email": "newuser@example.com"
}
},
"response": {
"status": 201,
"headers": {
"Content-Type": "application/json"
},
"body": "{\"code\":0,\"message\":\"注册成功\",\"data\":{\"userId\":10002,\"username\":\"newuser\",\"email\":\"newuser@example.com\",\"createdAt\":\"2026-03-27T10:00:00Z\"}}"
}
}

View File

@@ -1,26 +0,0 @@
# 用户注册 - JSON 格式
name: "user_register"
request:
method: "POST"
path: "/v1/auth/register"
headers:
Content-Type: "application/json"
body:
username: "newuser"
password: "newpass123"
email: "newuser@example.com"
response:
status: 201
headers:
Content-Type: "application/json"
body: |
{
"code": 0,
"message": "注册成功",
"data": {
"userId": 10002,
"username": "newuser",
"email": "newuser@example.com",
"createdAt": "2026-03-27T10:00:00Z"
}
}

View File

@@ -1,29 +0,0 @@
# 用户登录 - JSON 格式
name: "user_login_001"
request:
path: "/v1/auth/login"
method: "POST"
headers:
Content-Type: "application/json"
Authorization: "eyJhbGciOiJIUzI1NiIsInR5cCI6"
host: "127.0.0.1:8080"
body:
username: "user001"
password: "password123"
response:
status: 200
headers:
Content-Type: "application/json"
body: |
{
"code": 0,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6",
"userId": 10001,
"username": "user001",
"role": "administrator"
}
}
settings:
delay_ms: 2000 # 模拟真实网络延迟