Files
zyt/server/test_doctor_api.php
T
2026-03-11 14:33:49 +08:00

92 lines
2.4 KiB
PHP

<?php
/**
* 医生API测试脚本
* 用于测试医生列表、详情和排班API
*/
// 设置基础URL
$baseUrl = 'http://localhost:8000/api';
// 测试函数
function testApi($method, $endpoint, $params = []) {
global $baseUrl;
$url = $baseUrl . $endpoint;
// 构建查询字符串
if ($method === 'GET' && !empty($params)) {
$url .= '?' . http_build_query($params);
}
echo "\n========================================\n";
echo "测试: $method $endpoint\n";
echo "URL: $url\n";
echo "参数: " . json_encode($params, JSON_UNESCAPED_UNICODE) . "\n";
echo "========================================\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
if ($method === 'POST') {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
}
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
echo "错误: $error\n";
return null;
}
echo "HTTP状态码: $httpCode\n";
$data = json_decode($response, true);
echo "响应: " . json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n";
return $data;
}
// 执行测试
echo "开始测试医生API...\n";
// 1. 测试获取医生列表
echo "\n\n【测试1】获取医生列表\n";
$result1 = testApi('GET', '/doctor/lists', [
'page_no' => 1,
'page_size' => 10
]);
// 2. 测试获取医生列表(带搜索)
echo "\n\n【测试2】获取医生列表(带搜索)\n";
$result2 = testApi('GET', '/doctor/lists', [
'page_no' => 1,
'page_size' => 10,
'keyword' => '医生'
]);
// 3. 测试获取医生详情
if ($result1 && isset($result1['data']['lists'][0])) {
$doctorId = $result1['data']['lists'][0]['id'];
echo "\n\n【测试3】获取医生详情 (ID: $doctorId)\n";
$result3 = testApi('GET', '/doctor/detail', [
'id' => $doctorId
]);
// 4. 测试获取医生排班
echo "\n\n【测试4】获取医生排班 (ID: $doctorId)\n";
$result4 = testApi('GET', '/doctor/roster', [
'doctor_id' => $doctorId,
'date' => date('Y-m-d')
]);
}
echo "\n\n测试完成!\n";
?>