92 lines
2.4 KiB
PHP
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";
|
|
?>
|